{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Define TestRunner and TestPlan"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-02-27 02:26:05,389 - INFO - font_manager.py:_rebuild - Generating new fontManager, this may take some time...\n"
     ]
    }
   ],
   "source": [
    "import time\n",
    "import json\n",
    "import pandas as pd\n",
    "\n",
    "from importlib import reload\n",
    "import logging\n",
    "reload(logging)\n",
    "logging.basicConfig(format='%(asctime)s - %(levelname)s - %(filename)s:%(funcName)s - %(message)s',level=logging.INFO)\n",
    "\n",
    "from elasticsearch import Elasticsearch\n",
    "from clickhouse_driver import Client\n",
    "\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "sns.set_theme(style=\"ticks\", color_codes=True)\n",
    "\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')\n",
    "warnings.simplefilter('ignore')\n",
    "\n",
    "class TestRunner:\n",
    "    def __init__(self, name, config):\n",
    "        self.name = name\n",
    "        self.config = config\n",
    "    \n",
    "    def run(self, case):\n",
    "        pass\n",
    "\n",
    "class ElasticsearchRuner(TestRunner):\n",
    "    def __init__(self, name, config):\n",
    "        TestRunner.__init__(self, name, config)\n",
    "        self.client = Elasticsearch([self.config['cluster']])\n",
    "        self.indices = self.config['indices']\n",
    "           \n",
    "    def run(self, case):\n",
    "        query = case\n",
    "        \n",
    "        is_aggregation = False\n",
    "        if 'aggs' in query:\n",
    "            is_aggregation = True\n",
    "        \n",
    "        logging.debug(f'{self.name} run query {case}')\n",
    "        start = time.time()\n",
    "        response = self.client.search(index=self.indices, body=query, scroll='10m', size=10000)\n",
    "        # enable scroll when it is not an aggregation search\n",
    "        if not is_aggregation:\n",
    "            sid = response['_scroll_id']\n",
    "            scroll_size = len(response['hits']['hits'])\n",
    "            while scroll_size > 0:\n",
    "                data = self.client.scroll(scroll_id=sid, scroll='2m')\n",
    "                # Update the scroll ID\n",
    "                sid = data['_scroll_id']\n",
    "                # Get the number of results that returned in the last scroll\n",
    "                scroll_size = len(data['hits']['hits'])\n",
    "        end = time.time()\n",
    "        logging.debug(f'{self.name} run query complete')\n",
    "        \n",
    "        result = {}\n",
    "        result['count'] = response['hits']['total']['value']\n",
    "        result['response'] = response\n",
    "        result['elapsed'] = end - start\n",
    "        \n",
    "        logging.debug(f'query result count {result[\"count\"]} elapsed {result[\"elapsed\"]}')\n",
    "        return result\n",
    "        \n",
    "class ClickhouseRuner(TestRunner):\n",
    "    def __init__(self, name, config):\n",
    "        TestRunner.__init__(self, name, config)\n",
    "        self.client = Client(self.config['cluster'])\n",
    "    \n",
    "    def run(self, case):\n",
    "        query = case\n",
    "        logging.debug(f'{self.name} run query {case}')\n",
    "        start = time.time()\n",
    "        response = self.client.execute(query)\n",
    "        end = time.time()\n",
    "        logging.debug(f'{self.name} run query complete')\n",
    "        \n",
    "        result = {}\n",
    "        result['count'] = len(response)\n",
    "        result['response'] = response\n",
    "        result['elapsed'] = end - start\n",
    "        \n",
    "        logging.debug(f'query result count {result[\"count\"]} elapsed {result[\"elapsed\"]}')\n",
    "        return result\n",
    "    \n",
    "class TestPlan:\n",
    "    def __init__(self, planfile):\n",
    "        with open(planfile) as json_file:\n",
    "            self.plan = json.load(json_file)\n",
    "            self.targets = []\n",
    "            for target in self.plan['targets']:\n",
    "                if target['type'] == 'elasticsearch':\n",
    "                    runner = ElasticsearchRuner(target['name'], target['config'])\n",
    "                    self.targets.append(runner)\n",
    "                elif target['type'] == 'clickhouse':\n",
    "                    runner = ClickhouseRuner(target['name'], target['config'])\n",
    "                    self.targets.append(runner)\n",
    "    \n",
    "    def run(self):\n",
    "        reports = []\n",
    "        for testcase in self.plan['testcases']:\n",
    "            name, description, cases = testcase\n",
    "            report = {}\n",
    "            report['name'] = name\n",
    "            report['description'] = description\n",
    "            report['result'] = []\n",
    "            logging.info(f'run testcase {name} {description}')\n",
    "            tests = list(zip(self.targets, cases))\n",
    "            for test in tests:\n",
    "                runner, query = test\n",
    "                result = {}\n",
    "                result['target'] = runner.name\n",
    "                result['case'] = str(query)\n",
    "                \n",
    "                elapsed = []\n",
    "                for i in range(self.plan['runs']):\n",
    "                    run_result = runner.run(query)\n",
    "                    elapsed.append(run_result['elapsed'])\n",
    "                    \n",
    "                result['elapsed'] = elapsed\n",
    "                result['elapsed_total'] = sum(elapsed)\n",
    "                report['result'].append(result)\n",
    "                \n",
    "            logging.info(f'run testcase {name} complete')\n",
    "            reports.append(report)\n",
    "        return self._summary(reports), self._detail(reports)\n",
    "    \n",
    "    def _summary(self, reports):\n",
    "        #convert reports data to dataframe\n",
    "        data = {}\n",
    "        columns = []\n",
    "\n",
    "        for report in reports:\n",
    "            for result in report['result']:\n",
    "                if 'name' not in data:\n",
    "                    data['name'] = []\n",
    "                    columns.append('name')\n",
    "                data['name'].append(report['name'])\n",
    "                \n",
    "                if 'description' not in data:\n",
    "                    data['description'] = []\n",
    "                    columns.append('description')\n",
    "                data['description'].append(report['description'])\n",
    "\n",
    "                if 'target' not in data:\n",
    "                    data['target'] = []\n",
    "                    columns.append('target')\n",
    "                data['target'].append(result['target'])\n",
    "\n",
    "                if 'elapsed_total' not in data:\n",
    "                    data['elapsed_total'] = []\n",
    "                    columns.append('elapsed_total')\n",
    "                data['elapsed_total'].append(result['elapsed_total'])\n",
    "\n",
    "        summary_df = pd.DataFrame (data, columns = columns)\n",
    "        return summary_df\n",
    "    \n",
    "    def _detail(self, reports):\n",
    "        data = {}\n",
    "        columns = []\n",
    "\n",
    "        for report in reports:\n",
    "            for result in report['result']:\n",
    "                for elapsed in result['elapsed']:\n",
    "                    if 'name' not in data:\n",
    "                        data['name'] = []\n",
    "                        columns.append('name')\n",
    "                    data['name'].append(report['name'])\n",
    "\n",
    "                    if 'description' not in data:\n",
    "                        data['description'] = []\n",
    "                        columns.append('description')\n",
    "                    data['description'].append(report['description'])\n",
    "\n",
    "                    if 'target' not in data:\n",
    "                        data['target'] = []\n",
    "                        columns.append('target')\n",
    "                    data['target'].append(result['target'])\n",
    "\n",
    "                    if 'elapsed' not in data:\n",
    "                        data['elapsed'] = []\n",
    "                        columns.append('elapsed')\n",
    "                    data['elapsed'].append(elapsed)\n",
    "\n",
    "        detail_df = pd.DataFrame (data, columns = columns)\n",
    "        return detail_df\n",
    "        "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Sample to run a test query"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "clickhouse_config = { \"cluster\" : \"host.docker.internal\"} \n",
    "clickhouse_runner = ClickhouseRuner('clickhouse', clickhouse_config)\n",
    "\n",
    "query = 'SELECT * FROM syslog'\n",
    "clickhouse_runner.run(query)\n",
    "\n",
    "es_config = { \"cluster\" : \"host.docker.internal\", \"indices\" : \"syslog-2021-02-24,syslog-2021-02-25\"} \n",
    "es_runner = ElasticsearchRuner('es', es_config)\n",
    "\n",
    "query = {\n",
    "    \"query\": {\n",
    "        \"match_all\": {}\n",
    "    }\n",
    "}\n",
    "es_runner.run(query)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Run a test plan and show the test result"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-02-27 02:26:11,223 - INFO - <ipython-input-1-626631c9da21>:run - run testcase case1 query all\n",
      "2021-02-27 02:26:11,938 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.710s]\n",
      "2021-02-27 02:26:12,494 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.506s]\n",
      "2021-02-27 02:26:12,860 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.306s]\n",
      "2021-02-27 02:26:13,215 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.298s]\n",
      "2021-02-27 02:26:13,597 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.273s]\n",
      "2021-02-27 02:26:13,921 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.261s]\n",
      "2021-02-27 02:26:14,244 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.262s]\n",
      "2021-02-27 02:26:14,539 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.240s]\n",
      "2021-02-27 02:26:14,835 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.243s]\n",
      "2021-02-27 02:26:15,216 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.267s]\n",
      "2021-02-27 02:26:15,340 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.064s]\n",
      "2021-02-27 02:26:15,363 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.005s]\n",
      "2021-02-27 02:26:15,633 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.264s]\n",
      "2021-02-27 02:26:15,916 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.238s]\n",
      "2021-02-27 02:26:16,215 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.251s]\n",
      "2021-02-27 02:26:16,591 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.248s]\n",
      "2021-02-27 02:26:16,895 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.248s]\n",
      "2021-02-27 02:26:17,196 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.247s]\n",
      "2021-02-27 02:26:17,491 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.239s]\n",
      "2021-02-27 02:26:17,802 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.258s]\n",
      "2021-02-27 02:26:18,165 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.242s]\n",
      "2021-02-27 02:26:18,457 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.237s]\n",
      "2021-02-27 02:26:18,574 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.060s]\n",
      "2021-02-27 02:26:18,596 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:26:18,828 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.218s]\n",
      "2021-02-27 02:26:19,113 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.239s]\n",
      "2021-02-27 02:26:19,460 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.243s]\n",
      "2021-02-27 02:26:19,770 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.247s]\n",
      "2021-02-27 02:26:20,102 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.276s]\n",
      "2021-02-27 02:26:20,463 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.299s]\n",
      "2021-02-27 02:26:20,790 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.270s]\n",
      "2021-02-27 02:26:21,152 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.246s]\n",
      "2021-02-27 02:26:21,465 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.253s]\n",
      "2021-02-27 02:26:21,760 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.240s]\n",
      "2021-02-27 02:26:21,880 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.062s]\n",
      "2021-02-27 02:26:21,902 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.006s]\n",
      "2021-02-27 02:26:22,155 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.240s]\n",
      "2021-02-27 02:26:22,470 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.261s]\n",
      "2021-02-27 02:26:22,869 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.285s]\n",
      "2021-02-27 02:26:23,277 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.318s]\n",
      "2021-02-27 02:26:23,730 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.355s]\n",
      "2021-02-27 02:26:24,142 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.332s]\n",
      "2021-02-27 02:26:24,567 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.282s]\n",
      "2021-02-27 02:26:24,987 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.318s]\n",
      "2021-02-27 02:26:25,432 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.358s]\n",
      "2021-02-27 02:26:25,818 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.305s]\n",
      "2021-02-27 02:26:26,002 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.072s]\n",
      "2021-02-27 02:26:26,025 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.005s]\n",
      "2021-02-27 02:26:26,260 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.221s]\n",
      "2021-02-27 02:26:26,591 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.241s]\n",
      "2021-02-27 02:26:26,892 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.251s]\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-02-27 02:26:27,188 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.239s]\n",
      "2021-02-27 02:26:27,500 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.256s]\n",
      "2021-02-27 02:26:27,799 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.244s]\n",
      "2021-02-27 02:26:28,166 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.247s]\n",
      "2021-02-27 02:26:28,465 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.243s]\n",
      "2021-02-27 02:26:28,765 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.242s]\n",
      "2021-02-27 02:26:29,056 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.237s]\n",
      "2021-02-27 02:26:29,231 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.059s]\n",
      "2021-02-27 02:26:29,251 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:26:29,492 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.227s]\n",
      "2021-02-27 02:26:29,773 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.237s]\n",
      "2021-02-27 02:26:30,084 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.261s]\n",
      "2021-02-27 02:26:30,426 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.262s]\n",
      "2021-02-27 02:26:30,720 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.238s]\n",
      "2021-02-27 02:26:31,084 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.250s]\n",
      "2021-02-27 02:26:31,384 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.244s]\n",
      "2021-02-27 02:26:31,678 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.238s]\n",
      "2021-02-27 02:26:31,990 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.258s]\n",
      "2021-02-27 02:26:32,298 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.248s]\n",
      "2021-02-27 02:26:32,470 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.059s]\n",
      "2021-02-27 02:26:32,490 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:26:32,722 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.219s]\n",
      "2021-02-27 02:26:32,997 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.232s]\n",
      "2021-02-27 02:26:33,289 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.242s]\n",
      "2021-02-27 02:26:33,590 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.245s]\n",
      "2021-02-27 02:26:33,949 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.243s]\n",
      "2021-02-27 02:26:34,243 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.238s]\n",
      "2021-02-27 02:26:34,531 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.234s]\n",
      "2021-02-27 02:26:34,829 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.242s]\n",
      "2021-02-27 02:26:35,127 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.242s]\n",
      "2021-02-27 02:26:35,464 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.218s]\n",
      "2021-02-27 02:26:35,577 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.060s]\n",
      "2021-02-27 02:26:35,599 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.005s]\n",
      "2021-02-27 02:26:35,833 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.222s]\n",
      "2021-02-27 02:26:36,114 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.238s]\n",
      "2021-02-27 02:26:36,405 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.239s]\n",
      "2021-02-27 02:26:36,713 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.251s]\n",
      "2021-02-27 02:26:37,060 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.231s]\n",
      "2021-02-27 02:26:37,363 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.245s]\n",
      "2021-02-27 02:26:37,669 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.249s]\n",
      "2021-02-27 02:26:37,973 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.249s]\n",
      "2021-02-27 02:26:38,325 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.238s]\n",
      "2021-02-27 02:26:38,732 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.350s]\n",
      "2021-02-27 02:26:38,862 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.074s]\n",
      "2021-02-27 02:26:38,885 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:26:39,121 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.225s]\n",
      "2021-02-27 02:26:39,416 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.252s]\n",
      "2021-02-27 02:26:39,721 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.253s]\n",
      "2021-02-27 02:26:40,099 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.262s]\n",
      "2021-02-27 02:26:40,405 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.247s]\n",
      "2021-02-27 02:26:40,700 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.238s]\n",
      "2021-02-27 02:26:40,996 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.241s]\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-02-27 02:26:41,300 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.248s]\n",
      "2021-02-27 02:26:41,694 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.275s]\n",
      "2021-02-27 02:26:42,001 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.251s]\n",
      "2021-02-27 02:26:42,112 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.058s]\n",
      "2021-02-27 02:26:42,134 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:26:42,368 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.223s]\n",
      "2021-02-27 02:26:42,676 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.264s]\n",
      "2021-02-27 02:26:43,024 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.242s]\n",
      "2021-02-27 02:26:43,324 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.245s]\n",
      "2021-02-27 02:26:43,612 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.231s]\n",
      "2021-02-27 02:26:43,908 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.239s]\n",
      "2021-02-27 02:26:44,200 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.235s]\n",
      "2021-02-27 02:26:44,548 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.235s]\n",
      "2021-02-27 02:26:44,841 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.242s]\n",
      "2021-02-27 02:26:45,125 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.232s]\n",
      "2021-02-27 02:26:45,236 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.059s]\n",
      "2021-02-27 02:26:45,257 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:26:51,103 - INFO - <ipython-input-1-626631c9da21>:run - run testcase case1 complete\n",
      "2021-02-27 02:26:51,104 - INFO - <ipython-input-1-626631c9da21>:run - run testcase case2 match all\n",
      "2021-02-27 02:26:51,226 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.121s]\n",
      "2021-02-27 02:26:51,247 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.009s]\n",
      "2021-02-27 02:26:51,369 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.092s]\n",
      "2021-02-27 02:26:51,388 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:26:51,482 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.091s]\n",
      "2021-02-27 02:26:51,500 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:26:51,596 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.093s]\n",
      "2021-02-27 02:26:51,670 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:26:51,768 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.095s]\n",
      "2021-02-27 02:26:51,785 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:26:51,876 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.088s]\n",
      "2021-02-27 02:26:51,897 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.006s]\n",
      "2021-02-27 02:26:51,984 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.084s]\n",
      "2021-02-27 02:26:52,005 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:26:52,096 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.088s]\n",
      "2021-02-27 02:26:52,114 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:26:52,207 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.090s]\n",
      "2021-02-27 02:26:52,226 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.006s]\n",
      "2021-02-27 02:26:52,320 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.091s]\n",
      "2021-02-27 02:26:52,338 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:26:52,812 - INFO - <ipython-input-1-626631c9da21>:run - run testcase case2 complete\n",
      "2021-02-27 02:26:52,813 - INFO - <ipython-input-1-626631c9da21>:run - run testcase case3 multi match\n",
      "2021-02-27 02:26:53,116 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.300s]\n",
      "2021-02-27 02:26:53,370 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.214s]\n",
      "2021-02-27 02:26:53,404 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.008s]\n",
      "2021-02-27 02:26:53,681 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.268s]\n",
      "2021-02-27 02:26:53,957 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.182s]\n",
      "2021-02-27 02:26:53,991 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.006s]\n",
      "2021-02-27 02:26:54,289 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.287s]\n",
      "2021-02-27 02:26:54,524 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.192s]\n",
      "2021-02-27 02:26:54,557 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.007s]\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-02-27 02:26:54,856 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.285s]\n",
      "2021-02-27 02:26:55,081 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.183s]\n",
      "2021-02-27 02:26:55,115 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.006s]\n",
      "2021-02-27 02:26:55,410 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.281s]\n",
      "2021-02-27 02:26:55,676 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.180s]\n",
      "2021-02-27 02:26:55,710 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.006s]\n",
      "2021-02-27 02:26:55,999 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.274s]\n",
      "2021-02-27 02:26:56,236 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.192s]\n",
      "2021-02-27 02:26:56,270 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.005s]\n",
      "2021-02-27 02:26:56,550 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.267s]\n",
      "2021-02-27 02:26:56,769 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.178s]\n",
      "2021-02-27 02:26:56,859 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.007s]\n",
      "2021-02-27 02:26:57,192 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.321s]\n",
      "2021-02-27 02:26:57,445 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.207s]\n",
      "2021-02-27 02:26:57,481 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.006s]\n",
      "2021-02-27 02:26:57,754 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.261s]\n",
      "2021-02-27 02:26:57,977 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.182s]\n",
      "2021-02-27 02:26:58,012 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.005s]\n",
      "2021-02-27 02:26:58,302 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.279s]\n",
      "2021-02-27 02:26:58,528 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.184s]\n",
      "2021-02-27 02:26:58,611 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.005s]\n",
      "2021-02-27 02:26:59,753 - INFO - <ipython-input-1-626631c9da21>:run - run testcase case3 complete\n",
      "2021-02-27 02:26:59,754 - INFO - <ipython-input-1-626631c9da21>:run - run testcase case4 term query\n",
      "2021-02-27 02:27:00,081 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.324s]\n",
      "2021-02-27 02:27:00,191 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.044s]\n",
      "2021-02-27 02:27:00,206 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.005s]\n",
      "2021-02-27 02:27:00,539 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.326s]\n",
      "2021-02-27 02:27:00,669 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.057s]\n",
      "2021-02-27 02:27:00,685 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.007s]\n",
      "2021-02-27 02:27:01,005 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.306s]\n",
      "2021-02-27 02:27:01,100 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.046s]\n",
      "2021-02-27 02:27:01,112 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.005s]\n",
      "2021-02-27 02:27:01,469 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.347s]\n",
      "2021-02-27 02:27:01,630 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.055s]\n",
      "2021-02-27 02:27:01,644 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.006s]\n",
      "2021-02-27 02:27:02,028 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.374s]\n",
      "2021-02-27 02:27:02,141 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.059s]\n",
      "2021-02-27 02:27:02,154 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.006s]\n",
      "2021-02-27 02:27:02,520 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.356s]\n",
      "2021-02-27 02:27:02,636 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.062s]\n",
      "2021-02-27 02:27:02,655 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.008s]\n",
      "2021-02-27 02:27:03,084 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.417s]\n",
      "2021-02-27 02:27:03,169 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.047s]\n",
      "2021-02-27 02:27:03,183 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.006s]\n",
      "2021-02-27 02:27:03,470 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.275s]\n",
      "2021-02-27 02:27:03,601 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.044s]\n",
      "2021-02-27 02:27:03,611 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:27:03,887 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.267s]\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-02-27 02:27:03,968 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.041s]\n",
      "2021-02-27 02:27:03,978 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:27:04,250 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.263s]\n",
      "2021-02-27 02:27:04,329 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.041s]\n",
      "2021-02-27 02:27:04,341 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.005s]\n",
      "2021-02-27 02:27:05,145 - INFO - <ipython-input-1-626631c9da21>:run - run testcase case4 complete\n",
      "2021-02-27 02:27:05,146 - INFO - <ipython-input-1-626631c9da21>:run - run testcase case5 range query\n",
      "2021-02-27 02:27:05,379 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.231s]\n",
      "2021-02-27 02:27:05,685 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.261s]\n",
      "2021-02-27 02:27:05,976 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.250s]\n",
      "2021-02-27 02:27:06,326 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.247s]\n",
      "2021-02-27 02:27:06,622 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.249s]\n",
      "2021-02-27 02:27:06,703 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.034s]\n",
      "2021-02-27 02:27:06,722 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.005s]\n",
      "2021-02-27 02:27:06,948 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.221s]\n",
      "2021-02-27 02:27:07,228 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.237s]\n",
      "2021-02-27 02:27:07,593 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.272s]\n",
      "2021-02-27 02:27:07,929 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.267s]\n",
      "2021-02-27 02:27:08,239 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.251s]\n",
      "2021-02-27 02:27:08,325 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.035s]\n",
      "2021-02-27 02:27:08,345 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.005s]\n",
      "2021-02-27 02:27:08,604 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.248s]\n",
      "2021-02-27 02:27:08,896 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.245s]\n",
      "2021-02-27 02:27:09,234 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.245s]\n",
      "2021-02-27 02:27:09,519 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.230s]\n",
      "2021-02-27 02:27:09,811 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.243s]\n",
      "2021-02-27 02:27:09,902 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.035s]\n",
      "2021-02-27 02:27:09,920 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.005s]\n",
      "2021-02-27 02:27:10,175 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.244s]\n",
      "2021-02-27 02:27:10,501 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.236s]\n",
      "2021-02-27 02:27:10,778 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.236s]\n",
      "2021-02-27 02:27:11,076 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.246s]\n",
      "2021-02-27 02:27:11,359 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.235s]\n",
      "2021-02-27 02:27:11,443 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.035s]\n",
      "2021-02-27 02:27:11,460 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.005s]\n",
      "2021-02-27 02:27:11,727 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.256s]\n",
      "2021-02-27 02:27:12,060 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.234s]\n",
      "2021-02-27 02:27:12,346 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.246s]\n",
      "2021-02-27 02:27:12,635 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.239s]\n",
      "2021-02-27 02:27:12,923 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.237s]\n",
      "2021-02-27 02:27:13,006 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.035s]\n",
      "2021-02-27 02:27:13,022 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:27:13,270 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.237s]\n",
      "2021-02-27 02:27:13,608 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.242s]\n",
      "2021-02-27 02:27:13,894 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.246s]\n",
      "2021-02-27 02:27:14,187 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.243s]\n",
      "2021-02-27 02:27:14,476 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.238s]\n",
      "2021-02-27 02:27:14,620 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.038s]\n",
      "2021-02-27 02:27:14,638 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.005s]\n",
      "2021-02-27 02:27:14,887 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.239s]\n",
      "2021-02-27 02:27:15,179 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.246s]\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-02-27 02:27:15,458 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.236s]\n",
      "2021-02-27 02:27:15,753 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.238s]\n",
      "2021-02-27 02:27:16,053 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.251s]\n",
      "2021-02-27 02:27:16,195 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.034s]\n",
      "2021-02-27 02:27:16,212 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.005s]\n",
      "2021-02-27 02:27:16,457 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.234s]\n",
      "2021-02-27 02:27:16,744 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.244s]\n",
      "2021-02-27 02:27:17,028 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.242s]\n",
      "2021-02-27 02:27:17,311 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.230s]\n",
      "2021-02-27 02:27:17,614 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.254s]\n",
      "2021-02-27 02:27:17,758 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.034s]\n",
      "2021-02-27 02:27:17,776 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.005s]\n",
      "2021-02-27 02:27:18,022 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.237s]\n",
      "2021-02-27 02:27:18,303 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.238s]\n",
      "2021-02-27 02:27:18,582 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.239s]\n",
      "2021-02-27 02:27:18,871 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.239s]\n",
      "2021-02-27 02:27:19,218 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.239s]\n",
      "2021-02-27 02:27:19,301 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.034s]\n",
      "2021-02-27 02:27:19,317 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:27:19,560 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.233s]\n",
      "2021-02-27 02:27:19,833 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.232s]\n",
      "2021-02-27 02:27:20,129 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.253s]\n",
      "2021-02-27 02:27:20,427 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.247s]\n",
      "2021-02-27 02:27:20,776 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.240s]\n",
      "2021-02-27 02:27:20,864 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.040s]\n",
      "2021-02-27 02:27:20,882 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.005s]\n",
      "2021-02-27 02:27:23,966 - INFO - <ipython-input-1-626631c9da21>:run - run testcase case5 complete\n",
      "2021-02-27 02:27:23,967 - INFO - <ipython-input-1-626631c9da21>:run - run testcase case6 exist query\n",
      "2021-02-27 02:27:24,203 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.233s]\n",
      "2021-02-27 02:27:24,520 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.273s]\n",
      "2021-02-27 02:27:24,805 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.242s]\n",
      "2021-02-27 02:27:25,177 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.262s]\n",
      "2021-02-27 02:27:25,484 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.255s]\n",
      "2021-02-27 02:27:25,771 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.233s]\n",
      "2021-02-27 02:27:26,055 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.236s]\n",
      "2021-02-27 02:27:26,340 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.236s]\n",
      "2021-02-27 02:27:27,683 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:1.235s]\n",
      "2021-02-27 02:27:27,964 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.230s]\n",
      "2021-02-27 02:27:28,071 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.060s]\n",
      "2021-02-27 02:27:28,091 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:27:28,320 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.212s]\n",
      "2021-02-27 02:27:28,599 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.238s]\n",
      "2021-02-27 02:27:28,954 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.253s]\n",
      "2021-02-27 02:27:29,234 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.234s]\n",
      "2021-02-27 02:27:29,513 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.234s]\n",
      "2021-02-27 02:27:29,796 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.236s]\n",
      "2021-02-27 02:27:30,113 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.265s]\n",
      "2021-02-27 02:27:30,487 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.232s]\n",
      "2021-02-27 02:27:30,791 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.243s]\n",
      "2021-02-27 02:27:31,092 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.254s]\n",
      "2021-02-27 02:27:31,200 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.060s]\n",
      "2021-02-27 02:27:31,218 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-02-27 02:27:31,469 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.239s]\n",
      "2021-02-27 02:27:31,752 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.237s]\n",
      "2021-02-27 02:27:32,074 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.228s]\n",
      "2021-02-27 02:27:32,353 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.230s]\n",
      "2021-02-27 02:27:32,644 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.244s]\n",
      "2021-02-27 02:27:32,926 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.233s]\n",
      "2021-02-27 02:27:33,269 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.236s]\n",
      "2021-02-27 02:27:33,549 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.233s]\n",
      "2021-02-27 02:27:33,843 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.247s]\n",
      "2021-02-27 02:27:34,141 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.250s]\n",
      "2021-02-27 02:27:34,248 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.059s]\n",
      "2021-02-27 02:27:34,266 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.003s]\n",
      "2021-02-27 02:27:34,499 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.222s]\n",
      "2021-02-27 02:27:34,822 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.234s]\n",
      "2021-02-27 02:27:35,099 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.234s]\n",
      "2021-02-27 02:27:35,371 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.227s]\n",
      "2021-02-27 02:27:35,638 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.246s]\n",
      "2021-02-27 02:27:35,937 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.251s]\n",
      "2021-02-27 02:27:36,273 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.231s]\n",
      "2021-02-27 02:27:36,548 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.228s]\n",
      "2021-02-27 02:27:36,828 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.235s]\n",
      "2021-02-27 02:27:37,103 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.228s]\n",
      "2021-02-27 02:27:37,266 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.057s]\n",
      "2021-02-27 02:27:37,285 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:27:37,516 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.221s]\n",
      "2021-02-27 02:27:37,790 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.231s]\n",
      "2021-02-27 02:27:38,066 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.231s]\n",
      "2021-02-27 02:27:38,477 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.326s]\n",
      "2021-02-27 02:27:38,856 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.319s]\n",
      "2021-02-27 02:27:39,271 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.292s]\n",
      "2021-02-27 02:27:39,665 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.331s]\n",
      "2021-02-27 02:27:40,070 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.333s]\n",
      "2021-02-27 02:27:40,528 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.369s]\n",
      "2021-02-27 02:27:40,884 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.282s]\n",
      "2021-02-27 02:27:41,045 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.059s]\n",
      "2021-02-27 02:27:41,066 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:27:41,306 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.229s]\n",
      "2021-02-27 02:27:41,601 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.249s]\n",
      "2021-02-27 02:27:41,916 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.269s]\n",
      "2021-02-27 02:27:42,215 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.247s]\n",
      "2021-02-27 02:27:42,584 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.257s]\n",
      "2021-02-27 02:27:42,870 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.239s]\n",
      "2021-02-27 02:27:43,156 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.237s]\n",
      "2021-02-27 02:27:43,447 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.243s]\n",
      "2021-02-27 02:27:43,724 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.230s]\n",
      "2021-02-27 02:27:44,059 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.231s]\n",
      "2021-02-27 02:27:44,159 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.056s]\n",
      "2021-02-27 02:27:44,181 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:27:44,397 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.207s]\n",
      "2021-02-27 02:27:44,668 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.230s]\n",
      "2021-02-27 02:27:44,941 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.230s]\n",
      "2021-02-27 02:27:45,285 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.240s]\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-02-27 02:27:45,561 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.228s]\n",
      "2021-02-27 02:27:45,848 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.227s]\n",
      "2021-02-27 02:27:46,138 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.245s]\n",
      "2021-02-27 02:27:46,426 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.238s]\n",
      "2021-02-27 02:27:46,762 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.231s]\n",
      "2021-02-27 02:27:47,057 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.248s]\n",
      "2021-02-27 02:27:47,158 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.056s]\n",
      "2021-02-27 02:27:47,177 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:27:47,395 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.208s]\n",
      "2021-02-27 02:27:47,681 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.244s]\n",
      "2021-02-27 02:27:47,961 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.235s]\n",
      "2021-02-27 02:27:48,298 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.231s]\n",
      "2021-02-27 02:27:48,585 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.240s]\n",
      "2021-02-27 02:27:48,875 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.240s]\n",
      "2021-02-27 02:27:49,156 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.233s]\n",
      "2021-02-27 02:27:49,503 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.240s]\n",
      "2021-02-27 02:27:49,785 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.237s]\n",
      "2021-02-27 02:27:50,089 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.250s]\n",
      "2021-02-27 02:27:50,192 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.059s]\n",
      "2021-02-27 02:27:50,210 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:27:50,434 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.214s]\n",
      "2021-02-27 02:27:50,711 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.234s]\n",
      "2021-02-27 02:27:51,047 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.241s]\n",
      "2021-02-27 02:27:51,330 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.235s]\n",
      "2021-02-27 02:27:51,611 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.235s]\n",
      "2021-02-27 02:27:51,900 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.244s]\n",
      "2021-02-27 02:27:52,182 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.237s]\n",
      "2021-02-27 02:27:52,527 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.239s]\n",
      "2021-02-27 02:27:52,813 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.242s]\n",
      "2021-02-27 02:27:53,095 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.234s]\n",
      "2021-02-27 02:27:53,204 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.057s]\n",
      "2021-02-27 02:27:53,222 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.003s]\n",
      "2021-02-27 02:27:53,441 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.209s]\n",
      "2021-02-27 02:27:53,781 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.248s]\n",
      "2021-02-27 02:27:54,052 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.230s]\n",
      "2021-02-27 02:27:54,333 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.235s]\n",
      "2021-02-27 02:27:54,623 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.243s]\n",
      "2021-02-27 02:27:54,917 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.244s]\n",
      "2021-02-27 02:27:55,275 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.248s]\n",
      "2021-02-27 02:27:55,563 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.243s]\n",
      "2021-02-27 02:27:55,836 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.227s]\n",
      "2021-02-27 02:27:56,121 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.238s]\n",
      "2021-02-27 02:27:56,228 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.060s]\n",
      "2021-02-27 02:27:56,309 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:28:01,699 - INFO - <ipython-input-1-626631c9da21>:run - run testcase case6 complete\n",
      "2021-02-27 02:28:01,700 - INFO - <ipython-input-1-626631c9da21>:run - run testcase case7 regex query\n",
      "2021-02-27 02:28:01,994 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.291s]\n",
      "2021-02-27 02:28:02,155 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.124s]\n",
      "2021-02-27 02:28:02,178 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.006s]\n",
      "2021-02-27 02:28:02,465 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.252s]\n",
      "2021-02-27 02:28:02,622 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.117s]\n",
      "2021-02-27 02:28:02,650 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.007s]\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-02-27 02:28:02,959 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.300s]\n",
      "2021-02-27 02:28:03,113 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.117s]\n",
      "2021-02-27 02:28:03,137 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:28:03,405 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.258s]\n",
      "2021-02-27 02:28:03,612 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.120s]\n",
      "2021-02-27 02:28:03,635 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.005s]\n",
      "2021-02-27 02:28:03,899 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.255s]\n",
      "2021-02-27 02:28:04,052 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.115s]\n",
      "2021-02-27 02:28:04,074 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.005s]\n",
      "2021-02-27 02:28:04,350 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.265s]\n",
      "2021-02-27 02:28:04,509 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.121s]\n",
      "2021-02-27 02:28:04,533 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.005s]\n",
      "2021-02-27 02:28:04,799 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.256s]\n",
      "2021-02-27 02:28:05,005 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.119s]\n",
      "2021-02-27 02:28:05,027 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:28:05,306 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.270s]\n",
      "2021-02-27 02:28:05,445 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.101s]\n",
      "2021-02-27 02:28:05,469 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:28:05,731 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.252s]\n",
      "2021-02-27 02:28:05,890 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.120s]\n",
      "2021-02-27 02:28:05,912 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.004s]\n",
      "2021-02-27 02:28:06,182 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.260s]\n",
      "2021-02-27 02:28:06,392 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.121s]\n",
      "2021-02-27 02:28:06,416 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/_search/scroll?scroll=2m [status:200 request:0.005s]\n",
      "2021-02-27 02:28:07,432 - INFO - <ipython-input-1-626631c9da21>:run - run testcase case7 complete\n",
      "2021-02-27 02:28:07,433 - INFO - <ipython-input-1-626631c9da21>:run - run testcase case8 count aggregation\n",
      "2021-02-27 02:28:07,744 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.308s]\n",
      "2021-02-27 02:28:08,053 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.236s]\n",
      "2021-02-27 02:28:08,348 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.248s]\n",
      "2021-02-27 02:28:08,609 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.215s]\n",
      "2021-02-27 02:28:08,945 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.239s]\n",
      "2021-02-27 02:28:09,208 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.219s]\n",
      "2021-02-27 02:28:09,462 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.208s]\n",
      "2021-02-27 02:28:09,743 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.236s]\n",
      "2021-02-27 02:28:10,012 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.222s]\n",
      "2021-02-27 02:28:10,327 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.224s]\n",
      "2021-02-27 02:28:10,485 - INFO - <ipython-input-1-626631c9da21>:run - run testcase case8 complete\n",
      "2021-02-27 02:28:10,485 - INFO - <ipython-input-1-626631c9da21>:run - run testcase case9 cardinality aggregation\n",
      "2021-02-27 02:28:10,767 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.279s]\n",
      "2021-02-27 02:28:11,021 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.214s]\n",
      "2021-02-27 02:28:11,292 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.224s]\n",
      "2021-02-27 02:28:11,599 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.218s]\n",
      "2021-02-27 02:28:11,874 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.228s]\n",
      "2021-02-27 02:28:12,166 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.237s]\n",
      "2021-02-27 02:28:12,453 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.237s]\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "2021-02-27 02:28:12,710 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.212s]\n",
      "2021-02-27 02:28:13,048 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.237s]\n",
      "2021-02-27 02:28:13,301 - INFO - base.py:log_request_success - POST http://host.docker.internal:9200/syslog-2021-02-24,syslog-2021-02-25,syslog-2021-02-26/_search?scroll=10m&size=10000 [status:200 request:0.210s]\n",
      "2021-02-27 02:28:13,445 - INFO - <ipython-input-1-626631c9da21>:run - run testcase case9 complete\n"
     ]
    }
   ],
   "source": [
    "testplan = TestPlan(\"testplan.json\")\n",
    "summary_report, detail_report = testplan.run()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Detail report"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<seaborn.axisgrid.FacetGrid at 0x7efcada0a5e0>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2UAAAPRCAYAAAB9LQAwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOzdeVyU9f7//8cwMCAgbmzulbmU6yi4FGq4YSqSnvxox8y0j2bm0Sx/Zdapo36zckmNPJVLZp/86DGPqSe1xV2PinrCNZfEXFABlU0WmYGZ3x9+nCRAJgMH8Hm/3bjd5nq/r+V5jVfn8OJ9Xe/LYLfb7YiIiIiIiIhLuLk6gIiIiIiIyL1MRZmIiIiIiIgLqSgTERERERFxIRVlIiIiIiIiLqSiTERERERExIVUlImIiIiIiLiQijIREXGZiRMnMnv27Lt6TLPZzPnz5+9o2/379xMREVHCie498fHxNG7cmNzcXACGDBnCV1995eJUIiKuo6JMRETuKbGxsdStW9epdRs3bszZs2cdyyEhIXz33XelFU1ERO5RKspEROSecHNURu5MXl6eqyOIiFRYKspEROSu+emnn+jXrx9ms5mXXnqJnJycfP1btmwhKiqKkJAQBg0axPHjxx198+fPp2PHjpjNZiIiIti9ezdwo1j45JNP6NatG2azmf79+3Pp0iXgxkjX0qVL6dGjBz169HC03Rz9mjhxIm+99RbDhg3DbDbz9NNPc+HCBQAGDx4MQFRUFGazmfXr1xMTE0OnTp0cmeLi4hgyZAghISH07t2bTZs2OfomTpzI5MmTGTlyJGazmQEDBnDu3LmS/kpZuHAhYWFhhIWFsXLlynzn99vbAletWsVTTz2VL/+wYcNo27YtERERrF+/Pl/+t99+mxEjRtCqVSsWL17MI488kq+4/e6774iKiio019atW3niiSdo3bo1nTt3Jjo6uqRPXUSkwlBRJiIid4XFYuHFF18kKiqKvXv30rNnT77//ntH/9GjR5k0aRJTpkwhJiaGgQMHMnr0aCwWC6dPn2bp0qWsXLmS2NhYFi1aRO3atQFYvHgx69atY/78+fz4449MmzYNLy8vx343btzIihUr8hUct/rXv/7F6NGjiYmJoUmTJkyYMAGApUuXArBmzRpiY2Pp1atXvu2sViujRo3i0UcfZdeuXbz55ptMmDCB06dPO9ZZt24dY8aMYd++fdSrV++2z8+FhIQU+TN//vxCt9m+fTufffYZn332Gd9//72jUHVGVlYWw4cPp0+fPuzatYsPPviAyZMn8/PPPzvW+eabbxg1ahQ//vgjQ4YMoWrVqvz73/929K9du7bIoqxSpUq8//777N+/n08//ZRly5axceNGp/OJiNxLVJSJiMhdcfDgQaxWK0OHDsXDw4OePXvSvHlzR/+KFSsYOHAgLVu2xGg00q9fPzw8PDhw4ABGoxGLxUJcXBxWq5U6depQr149AL766ivGjRvHAw88gMFgoEmTJlSrVs2x35EjR1K1atV8hdqtHnvsMUJDQzGZTIwfP54DBw44RtqKO5+srCxGjhyJyWSiQ4cOhIeHs27dOsc63bt3p0WLFri7u9O3b1+OHTtW5P72799f5M/IkSML3WbDhg3079+fRo0a4e3tzZgxY4rNfdPWrVupXbs2f/rTn3B3d6dp06ZERETke2aua9eutGnTBjc3Nzw9PXniiSdYu3YtAKmpqezcuZM+ffoUuv927drRuHFj3NzcaNKkCb1792bv3r1O5xMRuZe4uzqAiIjcG5KSkggKCsJgMDjaatWq5fh88eJFVq9ezZdffulos1qtJCUl0bZtWyZNmkR0dDSnTp0iLCyMiRMnEhQUREJCgqNAK0zNmjVvmys4ONjx2cfHhypVqpCUlFTsdklJSQQHB+Pm9uvfN2vVqkViYqJj2d/f3/HZy8uLrKys2+7z90pKSqJZs2aO5Zujh864cOEChw4dIiQkxNGWl5dH3759Hcu//Q6ioqJ4/PHHyczMZMOGDYSEhBAYGFjo/g8ePMjMmTP5+eefsVqtWCwWevbs6XQ+EZF7iYoyERG5KwICAkhMTMRutzsKs4sXLzpmQqxZsyajRo3ihRdeKHT7yMhIIiMjycjI4K233mLmzJnMmDGD4OBgzp07R6NGjQrd7tYisDAJCQmOz5mZmaSlpRVZaNwqMDCQhIQEbDabozC7dOkS9913X7HbFsZsNhfZ9/zzzzNq1KhCM9w6qnfx4sV8/ZUqVSI7O9uxfOXKFcfnmjVrEhoayuLFi53OGBQUhNls5ocffmDNmjX5nk/7rVdeeYWnn36ahQsX4unpyTvvvENKSorTxxIRuZfo9kUREbkrWrVqhbu7O1988QW5ubl8//33HD582NE/YMAAli9fzsGDB7Hb7WRlZbF161YyMjI4ffo0u3fvxmKxYDKZ8PT0xGg0OrabO3cuZ86cwW63c/z48d/1y/+2bdvYv38/FouFuXPn0rJlS8cIkb+/f5HvNGvRogWVKlVi4cKFWK1WYmJi2Lx5c4Fnz5wVGxtb5E9hBRlAz549+frrrzl16hTZ2dl89NFH+fofeughfvjhB7Kzszl79iwrV6509D322GOcOXOG1atXY7VasVqtHDp0iLi4uNvmjIqKYtGiRZw8eZLu3bsXuV5mZiZVqlTB09OTQ4cO8c033/yOb0NE5N6iokxERO4Kk8lEdHQ0X3/9NaGhoaxfvz7fL/XNmzdn6tSpTJkyhdDQUHr06MGqVauAG5OEzJo1i3bt2hEWFkZycjLjx48HYNiwYTz++OMMHz6c1q1b88YbbxSY1fF2+vTpw7x582jXrh1Hjx5lxowZjr4xY8YwceJEQkJCCkwUYjKZ+Pjjj9m+fTvt27dn8uTJTJ8+nQYNGvyRr+l36dy5M0OHDmXo0KF0796d9u3b5+u/+fzeI488wmuvvUZkZKSjz9fXl0WLFrF+/Xo6duxIWFgYM2fOxGKx3PaY3bt358KFC3Tv3h1vb+8i13v77bf58MMPMZvNzJs3j8cff/yPnayISAVmsNvtdleHEBERcYWbz6XdLPAqgsaNG/P9999Tv379UjtGt27dmDJlCo888kipHUNE5F6ikTIRERFx2nfffYfBYCgwKiciIndOE32IiIiIU4YMGcKpU6eYPn16vlknRUTkj9HtiyIiIiIiIi6kP3OJiIiIiIi4kIqyMiI3N5f4+Hhyc3NdHUVERERERO4iFWVlREJCAl27ds33ElMREREREan4VJSJiIiIiIi4kIoyERERERERF1JRJiIiIiIi4kIqykRERERERFxIRZmIiIiIiIgLqSgTERERERFxIRVlIiIiIiIiLqSiTERERERExIVUlImIiIiIiLiQijIRERERcYnsnFysuTZXxxBxOXdXBxARERGRss9ut7Pu37+w+/Alavr78FSPxtSoUumO9mXNzWPO8lh2HriAl6c7T/d8iMiODxS5vsWax4GTl/H19uDh+2vc6SmIlFkqykRERESkWGu2n2bR2iMAHDp1hRNnU/jwlccwGAy/e1/rd51he+wFALKu57JgzWFaNwmkdoBvgXWT06/z/324naSUbADaNQ3mzeHt/sCZiJQ9un1RRERERIq18+CFfMtnLqUTn5RxR/s6fSEt37LdDr9cTCt03W92nnYUZAAxRxM4evrqHR1X7j15NrurIzhFI2UlJDExkQkTJvDTTz9Rv359Vq1a5epIIiIiIiXifOI1vL3y/9pocnejWmXP370va24eAVXz3/bo4e5G09/clmiz2TkVn0piclaBfVzLsvzu40rFdy3LwrmEazSoXYWMbCsf/O+PHI67wn01/XhpkJkGdaq6OmKRVJSVEG9vb8aOHUtGRgbR0dGujiMiIiLyh9ntdmZ++R+2H7gxSubh7oY114a70cCzfZri6236Xfs7eymdt+bvIjk9B4MBKnubCKzuzdM9m1DNz8uxXsq167zx8S7OJ14DwADcHO/wr1oJc+PAkjg9qUB2xF5gzvIfseTa8K3kQb3gyvz0SzJwY1R35tL/8PFrXV2csmgqym7j4MGDzJw5k8zMTADGjh1L8+bNeeWVV7h69caweYcOHZg0aRKVK1cmNDSUmJiYYvebnp5Oenp6vraEhISSPwERERGRPyD25GVHQQZgzbXRr3MD+oc3pOodjJL9z4ZjJKfnADduWcyx5vHOqEfw9vLIt97qrXGOggxuFGSPtqhFcA1v+oQ9gKeH8c5OSCqkPJud+WsOY/m/mTwzsq2cOJuSb534pAwys634VPIobBcup6KsCOnp6bz99tvMnz+fwMBAkpKSePLJJxk+fDi1atXi888/ByAtrfD7n29nyZIlfPTRRyWcWERERKRkXb7lWS4Hg+GOCjKAK2n595djySM901KgKLucWvC4PdrVp3UTjZBJQdbcPNIycvK1Gd0M+Z4nu6+mX5ktyEBFWZFiY2OJj49nxIgRjjaDwUCzZs1YvHgx77//Pm3btiUsLOx373vo0KH069cvX1tCQgKDBw/+w7lFRERESkrbh4Oo5OlOdk4uAG5uBsJa1rrj/XVqVZu4+F//oO1f1Yt/H7xIl5C6+W5f7GSuzY5bRuiq+3nRrIGmwpfCeZncaftwMDFHf73zrGtoXZLTczh06jIP1K7Ki0+2dGHC4jldlC1atIjnnnuuQPvixYsZNmxYiYYqC+x2O40bN2bp0qUF+lavXs2uXbtYs2YN8+fPZ9myZb9r335+fvj5+ZVUVBEREZFSUc3Pi3dHP8rXW+Ow5ObxeIf7aFSv2h3vr99jD+JpcmfXoYucPJfCldTrfL7uJ1Zvj+PDVx6jWuUbhVn7ZjV57ZkQNu07T7XKnjzZtSEm3bIot/Hyn1vz1aafORWfSsuGAfTr3ACjsfxMNO90UTZv3rxCi7KPP/64QhZlZrOZs2fPsmfPHtq3bw/AoUOHqFatGsHBwfTu3ZuQkBC6d++OzWbDza38/KOLiIiIOKtBnapMeLpNiezLYDDQ+9H7gRvvOrsp9VoO2368wBOdGzjawlrWJqxl7RI5rlR83l4eDO39sKtj3LFii7Ldu3cDYLPZ2LNnD3b7r/dmxsfH4+PjU3rpXKhKlSr8/e9/Z8aMGUybNg2r1UrdunXp3r07S5YswWg0YrPZmDx5Mm5ubuTl5REeHo7FYiEjI4NOnToxYMAA/vKXv7j6VERERETKFKNbwRdOF9Ymcq8w2G+tsgrRpUsXAC5dukTNmjV/3dBgwN/fn5EjR9K1a9mdXrK8iI+Pp2vXrmzatIk6deq4Oo6IiIhIqcnMtjJ+zjYuXbkxw7VvJQ8G92xC93b1NbOi3JOKLcpuevXVV5k+fXpp57lnqSgTERGRe0nWdSv/2nGaf2w8ifX/pjJvVK8q0//SSaNmcs9x+kGo6dOnY7Va2b9/P+vXrwcgKyuLrKyCb1kXEREREbkdby8PUq7lOAoygJPnUjlyy7NmIvcKpyf6OHHiBC+88AImk4nExER69erFvn37+Prrr5kzZ04pRhQREREREam4nB4p+9vf/sbYsWP59ttvcXe/UcuFhobyn//8p9TCiYiIiEjF9fgj91HJ89dnyBrWrUqzB/1dmEjENZweKTt16hRRUVHAjUk+ALy9vcnJybndZiIiIiIihaof7MdHE7qw8+BF/Hw8CGtVW8+TyT3J6aKsdu3aHDlyhObNmzvaDh06RL169UolmIiIiIhUfIHVvekf/qCrY4i4lNNF2bhx43j++ecZNGgQVquVTz/9lOXLlzN16tTSzCciIiIiIlKhOf1MWXh4OAsWLCA5OZnQ0FAuXLhAdHQ0YWFhpZlPRERERESkQnN6pAygadOmNG3atLSyiIiIiIiI3HOcLsrmzp1baLvJZCI4OJiOHTvi76/ZckRERERERH4Pp29fPHPmDAsWLCAmJoZz584RExPDggULOHbsGMuWLaNbt25s3769NLOKiIiIiIhUOE6PlNlsNmbPnk337t0dbRs3buSbb75hxYoVfP3118yaNYtOnTqVSlAREREREZGKyOmRsp07d9KlS5d8beHh4Y7Rsb59+3Lu3LmSTSciIiIiIlLBOV2U1atXj2XLluVrW758ueM9ZSkpKXh7e5dsOhERERERkQrO6dsX33nnHcaMGcOCBQsICgoiMTERo9FIdHQ0AL/88gvjxo0rtaAiIiIiIiIVkVNFmc1mIy0tjbVr13L8+HGSkpIICAigVatWeHh4ABAaGkpoaGiphhUREREREalonCrK3NzcGD16NLGxsYSEhJR2JhERERERkXuG08+UhYaGcuDAgVKMIiIiIiIicu9x+pmyWrVqMWLECLp27UpwcDAGg8HRp2fJRERERERE7ozTRVlOTg7dunUDIDExsdQCiYiIiIiI3EucLsrefffd0swhIiIiIiJyT3K6KLspIyODlJSUfG1169YtsUAiIiIiIiL3EqeLslOnTjFhwgSOHz+OwWDAbrc7nis7duxYqQUUKW/stjyun/sJ3Ix41X0o3/OXt7LlWrj24/fkJJ7F+4GW+DYNu8tJRURERKQscLoomzx5Mu3ateOLL76ga9eubN68mVmzZmE2m0szn0i5YrNkc/F/3sKScBoAr/pNqfnUXzEYPQqse3ltNJnHdgGQcWgzuRnJVG3Xt8B6uelXMZi8MHr5lG54EREREXEJp6fEP378OBMmTMDPzw+73U7lypV59dVXmTt3bmnmEylXrh3a5ijIAK6fPUrmyX0F1svLziDz2O7828ZuzLdss1zn0rL/x7nokZydM5yU7StKJ7SIiIiIuJTTRZmnpye5ubkAVKtWjYsXL2Kz2UhNTS2tbCLlji0rvUBb9i+HufLdQtJjf8Ced+O/IYO7BwYPz3zruXn55ltO/8+3ZJ+OvbGQl0vKjn9gSTpXOsFFRERExGWcLsratGnDhg0bAIiIiGDEiBEMGTKEDh063PHBu3TpwsmTJwF444032L9//23Xj46O5v333y/QHh8fT7t27e44R0lZtGgRERERNGnShC1btrg6jrhApQZmMP56V7DB3YNrsd+Tvn8DV9Z/wuV1fwfAzcOTap3+65b1TFTrPBAAu92GJeksOYm/FNi/5eqFEs1ry8kiJ/EMdlteie5XRERERJzn9DNlLVq0oH///gC8/PLLNGzYkMzMTNLTC44M3Il33nmnRPbjSqGhoXTr1o03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RERERERKw6ZNm6hTp06BdoPdbre7II/8xvXr1zly5AgBAQEYjUaXZEhISGDw4MEsXbqU4OBgl2QQKYquTynLdH1KWabrU8qye+361EhZGefl5UVISIirYwA3LpbCKniRskDXp5Rluj6lLNP1KWXZvX59aqIPERERERERF1JRJiIiIiIi4kIqykRERERERFxIRZk4+Pn5MWbMGPz8/FwdRaQAXZ9Slun6lLJM16eUZbo+b9DsiyIiIiIiIi6kkTIREREREREXUlEmIiIiIiLiQirKREREREREXEhFmYiIiIiIiAupKBMREREREXEhFWUiIiIiIiIupKJMRERERETEhVSUiYiIiIiIuJCKMhERERERERdSUSYiIiIiIuJCKspERERERERcSEWZiIjcdRMnTmT27Nl39Zhms5nz58/f0bb79+8nIiKihBOVT0OGDOGrr74q8X2tWrWKp556qkT2KyJS3qgoExGRe0JsbCx169Z1at3GjRtz9uxZx3JISAjfffddaUVzud+er4iI3F0qykREpELLzc11dQQREZHbUlEmIiKl7qeffqJfv36YzWZeeuklcnJy8vVv2bKFqKgoQkJCGDRoEMePH3f0zZ8/n44dO2I2m4mIiGD37t0A5OXl8cknn9CtWzfMZjP9+/fn0qVLwI2Rn6VLl9KjRw969OjhaLs5GjRx4kTeeusthg0bhtls5umnn+bChQsADB48GICoqCjMZjPr168nJiaGTp06OTLFxcUxZMgQQkJC6N27N5s2bXL0TZw4kcmTJzNy5EjMZjMDBgzg3LlzJfp93syzYMECOnToQFhYGBs3bmTbtm1ERETQtm1bPvnkE8f6hw4dYuDAgYSEhBAWFsaUKVOwWCxFni/Axo0biYqKonXr1nTr1o3t27c79nfhwgUGDRqE2Wxm+PDhJCcnF5ozLS2N559/nvbt2xMaGsrzzz9PQkJCiX4XIiIVgl1ERKQU5eTk2B977DH74sWL7RaLxb5hwwb7ww8/bP/ggw/sdrvdfuTIEXv79u3tBw4csOfm5tpXrVplDw8Pt+fk5Njj4uLsnTp1sickJNjtdrv9/Pnz9rNnz9rtdrt9wYIF9j59+tjj4uLsNpvNfuzYMXtycrLdbrfbGzVqZH/22WftKSkp9uzsbEfbmTNn7Ha73f7aa6/ZW7VqZd+7d689JyfHPnXqVPugQYMcmW9d12632/fs2WPv2LGj3W632y0Wi71bt272jz/+2J6Tk2PftWuXvVWrVva4uDjHvkNDQ+0HDx60W61W+8svv2x/6aWXivx+2rRpU+TPp59+Wug2e/bssT/00EP26Ohou8Visf/jH/+wt2vXzv7yyy/br127Zj958qS9WbNm9nPnztntdrv98OHD9tjYWLvVarWfP3/e3rNnT/vixYuLPN+DBw/aW7dubd+5c6c9Ly/PnpCQYD916pTdbrfbn376aXvXrl3tp0+ftmdnZ9uffvpp+4wZMwrNmZycbP/222/tWVlZ9mvXrtn/8pe/2F944QVH/9NPP21fsWKF3W632//5z3/m+zcQEbmXaKRMRERK1cGDB7FarQwdOhQPDw969uxJ8+bNHf0rVqxg4MCBtGzZEqPRSL9+/fDw8ODAgQMYjUYsFgtxcXFYrVbq1KlDvXr1APjqq68YN24cDzzwAAaDgSZNmlCtWjXHfkeOHEnVqlXx8vIqNNdjjz1GaGgoJpOJ8ePHc+DAAcdIW3Hnk5WVxciRIzGZTHTo0IHw8HDWrVvnWKd79+60aNECd3d3+vbty7Fjx4rc3/79+4v8GTlyZJHbubu788ILL+Dh4UGvXr1ISUnhmWeewdfXl4YNG9KwYUNOnDgBQLNmzWjVqhXu7u7UqVOHgQMHsm/fviL3vXLlSv70pz/x6KOP4ubmRlBQEA0aNHD09+/fn/vvvx8vLy969uxZ5PlVq1aNiIgIKlWqhK+vLy+88MJtjysicq9yd3UAERGp2JKSkggKCsJgMDjaatWq5fh88eJFVq9ezZdffulos1qtJCUl0bZtWyZNmkR0dDSnTp0iLCyMiRMnEhQUREJCgqNAK0zNmjVvmys4ONjx2cfHhypVqpCUlFTsdklJSQQHB+Pm9uvfNWvVqkViYqJj2d/f3/HZy8uLrKys2+7zTlStWhWj0eg4BkCNGjUc/Z6enmRmZgLwyy+/8N5773HkyBGys7PJy8ujadOmRe770qVLdO7cucj+gIAAx+dKlSoVeX7Z2dm8++677Nixg7S0NAAyMzPJy8tzZBcRERVlIiJSygICAkhMTMRutzsKs4sXLzpmQqxZsyajRo3ihRdeKHT7yMhIIiMjycjI4K233mLmzJnMmDGD4OBgzp07R6NGjQrd7tYisDC3PtuUmZlJWloagYGBxZ5PYGAgCQkJ2Gw2R2F26dIl7rvvvmK3LYzZbC6y7/nnn2fUqFF3tN9b/e1vf+Phhx9m1qxZ+Pr68vnnn992NsmaNWuWyHNwn332Gb/88gsrVqwgICCAY8eO8cQTT2C32//wvkVEKhLdvigiIqXq5m1zX3zxBbm5uXz//fccPnzY0T9gwACWL1/OwYMHsdvtZGVlsXXrVjIyMjh9+jS7d+/GYrFgMpnw9PR0jLAMGDCAuXPncubMGex2O8ePHyclJcXpXNu2bWP//v1YLBbmzp1Ly5YtHaNk/v7+Rb7TrEWLFlSqVImFCxditVqJiYlh8+bN9OrV646+n9jY2CJ/SqIggxtFp4+PDz4+PsTFxbFs2bJ8/b893yeffJJVq1axe/dubDYbiYmJxMXF3dFxPT098fPzIzU1lY8++ugPn4uISEWkokxEREqVyWQiOjqar7/+mtDQUNavX0/37t0d/c2bN2fq1KlMmTKF0NBQevTowapVqwCwWCzMmjWLdu3aERYWRnJyMuPHjwdg2LBhPP744wwfPpzWrVvzxhtvFJjV8Xb69OnDvHnzaNeuHUePHmXGjBmOvjFjxjBx4kRCQkIcsxHeej4ff/wx27dvp3379kyePJnp06fne+aqrHnttdf45ptvaN26NX/9618LFJC/Pd8WLVrw7rvvMm3aNNq0acPTTz/NxYsXf/dxhw4dSk5ODu3bt2fgwIF07NixpE5JRKRCMdh1D4GIiNxjbj6XdrPAExERcSWNlImIiIiIiLiQijIREREREREX0u2LIiIiIiIiLqSRMhERERERERdSUVZG5ObmEh8fT25urqujiIiIiIjIXaSirIxISEiga9eu+V5mKiIiIiIiFZ+7qwNIxZORZWH9rjOkXLtO59Z1aFK/uqsjiYiIiIiUWSrKpETZbHZe//u/OXMpHYD1u84w9fkOtHgwwMXJRERERETKJt2+KCXq2JlkR0EGN4q07/acdWEiEREREZGyTUWZlKhKngUHXwtrExERERGRG1SUSYl6oHYVHm1Zy7Fc2dvEE50buDCRiIiIiEjZpqJMSlR2Ti7Z160AGN0M9Am7nzqBlV2cSkRERESk7FJRJiXqm52n+fHEZQDybHaW/3CCC5czXJxKRERERKTsUlEmJepcwrV8y3Z7wTYREREREfmVijIpUSEPBeVbruRppFmDGi5KIyIiIiJS9qkokxLVrlkwoQ8H4ePlQd0gX97+7/ZU9ja5OpaIiIiISJmlokxK1Kyl/2HfT4lkXrdyPjGDo6eTXR1JRERERKRMU1EmJSYjy0LM0YR8bZv2nbvtNpeuZJL1f7M1ioiIiIjci/RWXykxJg8jXiZ3snNyHW1VfD0LXTfl2nWmLNzDqfg0TB5Ghvd5mN5hD9ytqCIiIiIiZYZGykpIYmIiQ4YMoU2bNvTv39/VcVzC5GHkmV4PYTDcWPYyGRnS6yFHvzU3jzOX0rFY8/jHDyc5FZ8GgMWax8K1R0i9luOK2CIiIiIiLqWRshLi7e3N2LFjycjIIDo62tVxXKZqZU9MHm7kWGz4VvLAz+fGJB9HT1/l3SV7Scuw4OdjIrBapXzb5ebZSUjOpGrlwkfWREREREQqKhVlt3Hw4EFmzpxJZmYmAGPHjqV58+a88sorXL16FYAOHTowadIkKleuTGhoKDExMcXuNz09nfT09HxtCQkJRaxdflhzbfx95SFyLDYArqRdZ/G/jvK3ER34ZNUh0jIsAKRnWnD7zRhtjSpePFin6l1OLCIiIiLieirKipCens7bb7/N/PnzCQwMJCkpiSeffJLhw4dTq1YtPv/8cwDS0tJ+976XLFnCRx99VMKJXS8j28K1LEu+totXbhS0Fy9n5GtPz7AwrE9TdhyIJ6CaN0Mefwh3o+6mFREREZF7j4qyIsTGxhIfH8+IESMcbQaDgWbNmrF48WLef/992rZtS1hY2O/e99ChQ+nXr1++toSEBAYPHvyHc7tStcpePHRfdY6d+XUa/Eea1wSgQ/NabIuN/7W9RS36hz9I//AH73pOEREREZGyxOmibNGiRTz33HMF2hcvXsywYcNKNFRZYLfbady4MUuXLi3Qt3r1anbt2sWaNWuYP38+y5Yt+1379vPzw8/Pr6SilimvDw3lg//9kVPxqQRW96ZLSD0AXhzQkqqVPTl25ipN6ldncM8mLk4qIiIiIlI2OH2/2Lx58wpt//jjj0ssTFliNps5e/Yse/bscbQdOnSI8+fP4+vrS+/evXn99dc5evQoNpvNhUnLllPxqRz4+TIZ2VZOX0jjr5/+mxxrHpU83fnvqGbMGteZEU80x9vLw9VRRURERETKhGJHynbv3g2AzWZjz5492O12R198fDw+Pj6ll86FqlSpwt///ndmzJjBtGnTsFqt1K1bl+7du7NkyRKMRiM2m43Jkyfj5uZGXl4e4eHhWCwWMjIy6NSpEwMGDOAvf/mLq0/lrtoeeyHfcnJ6DodPXSHkoSAXJRIRERERKduKLcreeOMNAHJycpg0aZKj3WAw4O/vz5tvvll66VysRYsW/M///E+B9gEDBhRoMxqNbN++/W7EKtNqVPFyqk1ERERERG4otijbvHkzAK+++irTp08v9UBSvkV1bkDM0UvEJ92YdbH3o/dzf60qLk4lIiIiIlJ2Of1M2fTp07Farezfv5/169cDkJWVRVZWVqmFk/LHzWDA3WgEwAC4uRlcG0hEREREpIxzuig7ceIEERERvPnmm45bGvft25fvlkaRNdvjOHPpxoux7cC/dpzml4u//11uIiIiIiL3CqeLsr/97W+MHTuWb7/9Fnf3G3c9hoaG8p///KfUwkn5czk126k2ERERERG5wemi7NSpU0RFRQE3JvkA8Pb2Jicnp3SSSbnUqVXtfMtVfT1p0cDfRWlERERERMo+p4uy2rVrc+TIkXxthw4dol69eiUeSsqv0IeD+a9ujfDz8aBaZU+e69sUL0+n31EuIiIiInLPcfq35XHjxvH8888zaNAgrFYrn376KcuXL2fq1KmlmU/KmZ/Pp/DVppPcfJ3drP/9kcreJtroPWUiIiIiIoVyeqQsPDycBQsWkJycTGhoKBcuXCA6OpqwsLDSzCflzK5DF7nl/eIAzF992DVhRERERETKgd91X1nTpk1p2rRpaWWRCqCaX8EXRadnWlyQRERERESkfHC6KJs7d26h7SaTieDgYDp27Ii/vyZ0uNf1bH8fy747QUa21dH2aMtaLkwkIiIiIlK2OX374pkzZ1iwYAExMTGcO3eOmJgYFixYwLFjx1i2bBndunVj+/btpZlVygGTh5FPJnblkeY1qRtUmX6PPciIJ5q7OpaIiIiISJnl9EiZzWZj9uzZdO/e3dG2ceNGvvnmG1asWMHXX3/NrFmz6NSpU6kElfKjiq8nrz/b1tUxRERERETKBadHynbu3EmXLl3ytYWHhztGx/r27cu5c+dKNp2UObnXUsjNSHV1DBERERGRCsPpkbJ69eqxbNkynn76aUfb8uXLHe8pS0lJwdvbu+QTSpmQm5lGwvL/hyXhNBgMVG7ZFf9eoxwvEhcRERERkTvjdFH2zjvvMGbMGBYsWEBQUBCJiYkYjUaio6MB+OWXXxg3blypBRXXsVlzuLDgZfIyU2802O1cO7ARn0Zt8W7YxqXZRERERETKO6eKMpvNRlpaGmvXruX48eMkJSUREBBAq1at8PDwACA0NJTQ0NBSDSuukfXz/l8LsltYrl5QUSYiIiIi8gc5VZS5ubkxevRoYmNjCQkJKe1MUsYY3Aq5TAwGvB9sfffDiIiIiIhUME5P9BEaGsqBAwdKMYqUVd4NW2MKuv/XBjcjAX3GYPKv47pQIiIiIiIVhNPPlNWqVYsRI0bQtWtXgoOD803woGfJKra8rGsY3E0AuHn5EtD7BXyatHdxKhERERGRisHpoiwnJ4du3boBkJiYWGqBpOxJ3vQFORdOAGC7nsGVbxfg3TAEg9Hpy0dERERERIrg9G/V7777bmnmkDIsJ+F0vuW8zFRyM5LxqBLookQiIiIiIhXH7x7qyMjIICUlJV9b3bp1SyyQlD2V7muO9eoFx7JH9Vq4+wW4MJGIiIiISMXhdFF26tQpJkyYwPHjxzEYDNjtdsdzZceOHSu1gOJ6lVt3J/vcT+SmJmIKrE9A79F6abSIiIiISAlxevbFyZMn065dO/bu3Yuvry/79u1j4MCBvPfee6WZT1wsLzONS1/+Devlc9itOVgun8Pg7uHqWCIiIiIiFYbTRdnx48eZMGECfn5+2O12KleuzKuvvsrcuXNLM5+4WObxPdiyrzmW7ZbrZBzZ4cJEIiIiIiIVi9NFmaenJ7m5uQBUq1aNixcvYrPZSE1NLa1sUga4efk41SYiIiIiInfG6aKsTZs2bNiwAYCIiAhGjBjBkCFD6NChwx0fvEuXLpw8eRKAN954g/379992/ejoaN5///0C7fHx8bRr1+6Oc5SURYsWERERQZMmTdiyZYur45QIn8bt8KzV0LHs4V+Hys07uzCRiIiIiEjF4vREHy1atKB///4AvPzyyzRs2JDMzEzS09NLJMg777xTIvtxpdDQULp168abb77p6iglx2jEw78OORdPAeBZuwkGT28XhxIRERERqTicHimbN2/erxu5uREVFcWf//xnPvvsM6e2j42N5amnnqJv37707duXnTt35usfMmSIY3Tp2rVrvP7660RGRtK3b1+mTJlSYH8nTpwgMjKSvXv3Otpmz57NE088QURERL5Rt9WrVxMZGUlkZCQvvvgiV69eBQqOvN26vHHjRiIjI4mKiqJPnz7ExMQAkJSUxNixY3nyySeJjIzkk08+cWzfokUL6tevX+x3kZ6eTnx8fL6fhISEYrdzhczjMWQc2gLYATsZBzeSdeo/ro4lIiIiIlJhFDtStnv3bgDy8vLYs2cPdrvd0RcfH4+PT/HPF6WmpjJmzBiio6Np3bo1eXl5ZGRkFLn+tGnT8Pb2Zs2aNbi5uZGcnFwg07Rp05g9ezYPPvgg8fHxpKam0qpVK8aPH8/atWuZOXMmy5cv5+TJk8ycOZNVq1YRGBjInDlzmDp1KnPmzLlt5g8//JC3336bkJAQ8vLyyM7OBuC1115j9OjRhIaGYrFYePbZZ2nevDmPPvposd/DTUuWLOGjjz5yen1Xsl45X0hbPDQMcUEaEREREZGKp9ii7I033gDAYrEwadIkR7vBYMDf39+pW/UOHDhAgwYNaN26NQBGo5EqVaoUuf6WLVtYtWoVbm43BvKqV6/u6Nu5cyc7duxg0aJFBAUFOdq9vb0JDw8HoFWrVo4Rr5iYGDp37kxgYCAAgwYNIioqqtjM7du357333qNnz5506tSJRo0akZWVxd69e/MViZmZmcTFxf2uomzo0KH069cvX1tCQgKDBw92eh93i3eD1qRsX8GNkTLA4IZ3A7NLM4mIiIiIVCTFFmWbN28G4NVXX2X69Ol3dJBbR9f+qPvvv5+ff/6ZI0eO5CvKTCaT47Obm5tjpshbX3L9W0ajEZvN5ljOyclxfJ40aRInTpxgz549jBs3jmHDhtGrVy8MBgMrV67Ew+PO39Xl5+eHn5/fHW9/N3nWepCAfuNJ3vw/2C3ZeDdog0f1Wq6OJSIiIiJSYTj9TNmdFmQAZrOZuLg4YmNjgRu3QqalpRW5fnh4OIsWLXIUc7eOTNWuXZvFixfzwQcfsH79+mKP3aFDB7Zt28bly5cBWLFiBY888ggA9erV4+jRo9hsNjIyMti6datju9OnT9O4cWOGDh1K3759OXz4ML6+vrRp04b58+c71rt06ZJj3xWV5eLP5KVdxpadQcaRbVxe/0nxG4mIiIiIiFOcnn3xj6hatSrR0dG89957ZGVl4ebmxmuvvVbk+q+//jrTpk2jT58+GI1G2rZtm+82yeDgYD7//HOee+45srOzbzsdfsOGDXnllVcYPnw4AHXr1nVMHNKjRw82bNhA7969qV+/Pk2bNnVsN2vWLM6ePYvRaMTPz88xO+TMmTN59913iYyMBMDHx4d33nmHgIAAFi5cyBdffEFycjITJ07E09OT9evX4+vre+dfXhlw7fC2fMsZR3cQ0Gc0BjejixKJiIiIiFQcBntJ3lsodyw+Pp6uXbuyadMm6tSp4+o4+Zyf/xLWy79O+GH0qUq9cQuLvC1URERERESc5/Tti3LvqtHlGTD+3zN0BiM1uj2rgkxEREREpISoKJNimQLr4VEl4MaCAXIzUlwbSERERESkAlFRJsVK2bkSa/LFGwu2PJK3fKnCTERERESkhKgok2Llpibmb7DlkZt+1TVhREREREQqGBVlUiyfxu3zLbtXDcQz+H4XpRERERERqVjuypT4Ur75tYnAmn6Vawc2YjC649vsMWzXszB6V3Z1NBERERGRck9FmRQrL+sa1378Ftv1TABSd64gdecKfJt1IjBqnIvTiYiIiIiUb7p9UYqVffqAoyC7VcaR7eQk/uKCRCIiIiIiFYeKMimW0a9GkX3Xz/10F5OIiIiIiFQ8KsqkWJXqPYxvi/BCegz4PBx21/OIiIiIiFQkKsrEKYGRY6g9Yg6m4AZgdMfNy5eAyDG4+1RxdTQRERERkXJNE32UEXl5eQAkJCS4OMntGCBiLKb/W0oD0uLjXRlIRERERKTcCA4Oxt29YAmmoqyMuHz5MgCDBw92cRIRERERESkNmzZtok6dOgXaDXa73e6CPPIb169f58iRIwQEBGA0Gl2SISEhgcGDB7N06VKCg4NdkkGkKLo+pSzT9Sllma5PKcvutetTI2VlnJeXFyEhIa6OAdy4WAqr4EXKAl2fUpbp+pSyTNenlGX3+vWpiT5ERERERERcSEWZiIiIiIiIC6koExERERERcSEVZeLg5+fHmDFj8PPzc3UUkQJ0fUpZputTyjJdn1KW6fq8QbMvioiIiIiIuJBGykRERERERFxIRZmIiIiIiIgLqSgTERERERFxIRVlIiIiIiIiLqSiTERERERExIVUlImIiIiIiLiQijIREREREREXUlEmIiIiIiLiQirKREREREREXEhFmYiIiIiIiAupKBMREREREXEhFWUiIlLiJk6cyOzZs+/qMc1mM+fPn7+jbffv309EREQJJyo7unTpwq5du4rs/+///m++/vrru5jIOY0bN+bs2bOujiEiUupU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wGw2M2XKFACGDRuGxWJh+PDhpKSk8MADDzBv3jync/Xp04d58+Zx4MABHn74YWbMmOHoGzNmDBMnTuT69etMmTIl3+15JpOJjz/+mMmTJ/Ppp58SFBTE9OnTadCgQQl8W6UjKiqKXbt20aVLF2rXrs2f/vQnPvvss0LX7dmzJ2vXrqVdu3bUqVOnRF8a7evry5tvvslLL72ExWIhPDycLl26OPobNGhA79696datG3l5eaxbt+4P/zuLiFQEBrvmlhURkQrm5nNp48ePd3UUERGRYun2RRERERERERdSUSYiIiIiIuJCun1RRERERETEhTRSJiIiIiIi4kIqysqI3Nxc4uPjyc3NdXUUERERERG5i1SUlREJCQl07do138tORURERESk4lNRJiIiIiIi4kIqykRERERERFxIRZmIiIiIiIgLqSgTERERERFxIRVlIiIiIiIiLuTu6gAiUtC1LAuL/3WU42dTePj+6jzbpym+lTxcHUtERERESoGKMpEyaO7yWGKO3ng9wvnEa2RkWZk4NNTFqURERESkNOj2RREXy8i2svPgBU6eS3G07TuWmG+dfT/p/XUiIiIiFZVGykRc6MyldF6ft5OMbCsAvR65jxf+1JK6gb6cTbjmWK9ucGVXRRQRERGRUqaRMhEXWrnpZ0dBBrBh9xkSk7Po26kB3l43/mbiX7USo//U0lURRURERKSUaaRMxIUysi35lu12+Hb3GVZu/tnRFtnxfhrVq3a3o4mIiIjIXaKRMhEXybPZafpAjXxtDetWZfP+8/naVm76GRERERGpuDRSJuICKdeu88bH/+Z8YgYAdYN86dy6Dr0ffYAX3tuUb908m90VEUVERETkLtFIWQlJTExkyJAhtGnThv79+7s6jpRRV1KzsebmsWZbnKMgAzifmEG7pjXxreRB77D7823Tt2MDAFKv5ZB13YqIiIiIVCwaKSsh3t7ejB07loyMDKKjo10dR8qYyynZvPN5DHHxaVT29qBeUMHZFK+kZnPmYhqrt54CoLqfF0N7P0THVrV5d8ledh++hLvRjT+FN2RwzyZ3+xREREREpJSoKLuNgwcPMnPmTDIzMwEYO3YszZs355VXXuHq1asAdOjQgUmTJlG5cmVCQ0OJiYkpdr/p6emkp6fna0tI0HuoKrIv1v9EXHwaANeyrJyKT83XX93PkwfqVGHktI3kWPIASE6/zk+/JJN1PZddhy4BYM21sfyHE7RrFsyDdarezVMQERERkVKioqwI6enpvP3228yfP5/AwECSkpJ48sknGT58OLVq1eLzzz8HIC0t7Xfve8mSJXz00UclnFjKsnOJ1/It51ht9GhXjz1HEvAyGRnetylp13IcBZlju4RruBkMBfeXcE1FmYiIiEgFoaKsCLGxscTHxzNixAhHm8FgoFmzZixevJj333+ftm3bEhYW9rv3PXToUPr165evLSEhgcGDB//h3FI2hTwUxOkLvxbwNap48cPec9jtkJ4Jc5fH8vdXuxBQrRKXU7Id67V5KJD7a1Zhw+4zjjYPdzdaNvS/m/FFREREpBQ5XZQtWrSI5557rkD74sWLGTZsWImGKgvsdjuNGzdm6dKlBfpWr17Nrl27WLNmDfPnz2fZsmW/a99+fn74+fmVVFQpBwZ1b0xeno29PyVQO8CXSp7ubPlPvKM/OyePgz9f4a3h7Zj5v//hcko2TepXp1+nBphM7ox+siXf7jpDJS93nuremBpVKrnwbERERESkJDk9++K8efMKbf/4449LLExZYjabOXv2LHv27HG0HTp0iPPnz+Pr60vv3r15/fXXOXr0KDabzYVJpTzwcHfj2T5N+furXXljWDsaFHLrYXANHzbtP8/ZS9fIup7LjyeSWPivowA83uE+5r7yGO+9GEbLRgF3Ob2IiIiIlKZiR8p2794NgM1mY8+ePdjtv74zKT4+Hh8fn9JL50JVqlTh73//OzNmzGDatGlYrVbq1q1L9+7dWbJkCUajEZvNxuTJk3FzcyMvL4/w8HAsFgsZGRl06tSJAQMG8Je//MXVpyJlUES7+uw9msChU1cwGCCi/X00faAGUz/LP1HMxr3neKF/CwyFPFcmIiIiIhWDwX5rlVWILl26AHDp0iVq1qz564YGA/7+/owcOZKuXbuWbsp7QHx8PF27dmXTpk3UqVPH1XHkLjmfeA1Pk5HAat4AjJy2kUtXMx391f08WfJ2T1fFExEREZG7oNiRss2bNwPw6quvMn369FIPJHIvqfub95UN7fMwM/5nP3k2OwYDPNKiFhZrHiYPo4sSioiIiEhpc/qZsunTp2O1Wtm/fz/r168HICsri6ysrFILJ3KvebRFLea9Gk5A1UrY7fDNzl94afY2sq5bXR1NREREREqJ00XZ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gB3b9UwSlkzC4G6iatiTVHv0T66OJyIiIiJS5mikTEpUxrFdQP5X39lzLaRs/V+uXzjpmlAiIiIiImWYijIpUe5+NYrsy7kUdxeTiIiIiIiUDyrKpET5teqOm7dfIT0GKtVvWki7iIiIiMi9TUWZlCg3z0rUfeEjKjVojcHdhMHdhHvVIAKjxmEKqOfqeCIiIiIiZY4m+igj8vLyAEhISHBxkhISNhSPsF8XU4HU+HhXpRERERERcbng4GDc3QuWYCrKyojLly8DMHjwYBcnERERERGR0rBp0ybq1KlToN1gt9vthawvd9n169c5cuQIAQEBGI1Gl2RISEhg8ODBLF26lODgYJdkECmKrk8py3R9Slmm61PKsnvt+tRIWRnn5eVFSEiIq2MANy6Wwip4kbJA16eUZbo+pSzT9Sll2b1+fWqiDxERERERERdSUSYiIiIiIuJCKspERERERERcSEWZOPj5+TFmzBj8/Ap7+bOIa+n6lLJM16eUZbo+pSzT9XmDZl8UERERERFxIY2UiYiIiIiIuJCKMhERERERERdSUSYiIiIiIuJCKspERERERERcSEWZiIiIiIiIC6koExERERERcSEVZSIiIiIiIi6kokxERERERMSFVJSJiIiIiIi4kIoyERERERERF1JRJiIiIiIi4kIqykREpFRNnDiR2bNn39Vjms1mzp8/f0fb7t+/n4iIiBJOJCIiUjQVZSIiUuHExsZSt25dp9Zt3LgxZ8+edSyHhITw3XfflVa03y0mJoZOnTq5OoaIiJQiFWUiIlJh5ObmujpCmVOevpPylFVEpCSpKBMRkRL1008/0a9fP8xmMy+99BI5OTn5+rds2UJUVBQhISEMGjSI48ePO/rmz59Px44dMZvNREREsHv3bgDy8vL45JNP6NatG2azmf79+3Pp0iXgxkjX0qVL6dGjBz169HC03Rz9mjhxIm+99RbDhg3DbDbz9NNPc+HCBQAGDx4MQFRUFGazmfXr1xcYmYqLi2PIkCGEhITQu3dvNm3a5OibOHEikydPZuTIkZjNZgYMGMC5c+dK7LvMyspixIgRJCUlYTabMZvNJCYmYrPZmD9/Pt26daNdu3aMGzeO1NRUAOLj42ncuDFfffUVjz32GEOHDmXVqlUMGjSIadOmERISQteuXfnxxx9ZtWoVnTt3pkOHDnz99ddF5jh//jxPP/00ZrOZYcOGMWXKFCZMmAAUPpLXpUsXdu3aBfC7s44cOZL/+Z//ybe/yMhINm7cWELfqohI2aOiTERESozFYuHFF18kKiqKvXv30rNnT77//ntH/9GjR5k0aRJTpkwhJiaGgQMHMnr0aCwWC6dPn2bp0qWsXLmS2NhYFi1aRO3atQFYvHgx69atY/78+fz4449MmzYNLy8vx343btzIihUrWL9+faG5/vWvfzF69GhiYmJo0qSJo6BYunQpAGvWrCE2NpZevXrl285qtTJq1CgeffRRdu3axZtvvsmECRM4ffq0Y51169YxZswY9u3bR7169W77/FxISEiRP/Pnzy+wvre3NwsWLCAwMJDY2FhiY2MJCgriiy++YOPGjXz55Zfs2LGDKlWqMGXKlHzb7tu3j/Xr17No0SIADh06ROPGjYmJiaFPnz68/PLLHD58mB9++IEZM2YwZcoUMjMzC809YcIEmjZtSkxMDKNHj75tAfdbvzfrE088wdq1ax19x48fJykpSbdwikiFpqJMRERKzMGDB7FarQwdOhQPDw969uxJ8+bNHf0rVqxg4MCBtGzZEqPRSL9+/fDw8ODAgQMYjUYsFgtxcXFYrVbq1KlDvXr1APjqq68YN24cDzzwAAaDgSZNmlCtWjXHfkeOHEnVqlXzFWq3euyxxwgNDcVkMjF+/HgOHDjgGGkr7nyysrIYOXIkJpOJDh06EB4ezrp16xzrdO/enRYtWuDu7k7fvn05duxYkfvbv39/kT8jR44sNs9N//jHPxg/fjzBwcGYTCbGjBnDd999l+/2v7/85S94e3s7vpM6derwpz/9CaPRSK9evbh06RIvvvgiJpOJsLAwTCZToaN8Fy9e5PDhw4wbNw6TyURoaChdunQptazdunXj7NmznDlzBrhRMD/++OOYTCanjykiUt64uzqAiIhUHElJSQQFBWEwGBxttWrVcny+ePEiq1ev5ssvv3S0Wa1WkpKSaNu2LZMmTSI6OppTp04RFhbGxIkTCQoKIiEhwVGgFaZmzZq3zRUcHOz47OPjQ5UqVUhKSip2u6SkJIKDg3Fz+/VvmLVq1SIxMdGx7O/v7/js5eVFVlbWbfdZEi5evMiLL76YL5ebmxtXr151LN96zgA1atTIlxPyZ/f09Cx0pCwpKQk/Pz+8vb0dbbVq1XKqqL2TrCaTiZ49e7J27VrGjBnDN998w4cffujUsUREyisVZSIiUmICAgJITEzEbrc7CrOLFy86ZkKsWbMmo0aN4oUXXih0+8jISCIjI8nIyOCtt95i5syZzJgxg+DgYM6dO0ejRo0K3e7WIrAwCQkJjs+ZmZmkpaURGBhY7PkEBgaSkJCAzWZzFBWXLl3ivvvuK3bbwpjN5iL7nn/+eUaNGlWgvbBzCw4OZtq0abRp06ZAX3x8fJHb3YmAgADS09PJyspyFGYXL1507L9SpUpcv37dsX5eXh7Jycl/KGu/fv149dVXadOmDZUqVbrt9yYiUhHo9kURESkxrVq1wt3dnS+++ILc3Fy+//57Dh8+7OgfMGAAy5cv5+DBg9jtdrKysti6dSsZGRmcPn2a3bt3Y7FYMJlMeHp6YjQaHdvNnTuXM2fOYLfbOX78OCkpKU7n2rZtG/v378disTB37lxatmzpGCXz9/cv8p1mLVq0oFKlSixcuBCr1UpMTAybN28u8OyZs24+F1bYT2EFGdwY4UpNTeXatWuOtqeeeoo5c+Y4JixJTk4utYkwateuTbNmzYiOjsZisbB//362bNni6L///vvJyclh69atWK1WPv74YywWyx/KajabcXNz47333qNv376lcl4iImWJRspERKTEmEwmoqOj+etf/8qcOXPo3Lkz3bt3d/Q3b96cqVOnMmXKFM6ePYuXlxetW7cmJCQEi8XCrFmziIuLw8PDA7PZ7JgQYtiwYVgsFoYPH05KSgoPPPAA8+bNczpXnz59mDdvHgcOHODhhx9mxowZjr4xY8YwceJErl+/zpQpU/Ld5mcymfj444+ZPHkyn376KUFBQUyfPp0GDRqUwLflnAYNGtC7d2+6detGXl4e69at45lnnsFutzN8+HCSkpKoUaMGvXr1olu3bqWSYdasWbz22mu0a9eOVq1a8cQTT5Ceng5A5cqVefvtt3nzzTfJy8vjv//7v/PdjninWaOiopg7dy5///vfS+WcRETKEoPdbre7OoSIiEhpuflc2vjx410dpcKIjo7m7NmzzJw5s9SOsXr1av7xj3+wbNmyUjuGiEhZodsXRUREpEzJzs7mf//3fxk4cKCro4iI3BUqykRERKTM2LFjBx06dKBGjRr06dPH1XFERO4K3b4oIiIiIiLiQhopExERERERcSEVZWVEbm4u8fHx5ObmujqK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PNjFSUREREREpDRs2rSJOnXqFGg32O12uwvyyG9cv36dI0eOEBAQgNHomtv/EhISGDx4MEuXLiU4ONglGUSKoutTyjJdn1KW6fqUsuxeuz41UlbGeXl5ERIS4uoYwI2LpbAKXqQs0PUpZZmuTynLdH1KWXavX5+a6ENERERERMSFVJSJiIiIiIi4kIoyERERERERF1JRJg5+fn6MGTMGPz8/V0cRKUDXp5Rluj6lLNP1KWWZrs8bNPuiiIiIiIiIC2mkTERERERExIVUlImIiIiIiLiQijIREREREREXUlEmIiIiIiLiQirKREREREREXEhFmYiIiIiIiAupKBMREREREXEhFWUiIiIiIiIupKJMRERERETEhVSUiYiIiIiIuJCKMhERERERERdSUSYiIiVq4sSJzJ49+64e02w2c/78+Tvadv/+/URERJRwIhEREeepKBMRkXIvNjaWunXrOrVu48aNOXv2rGM5JCSE7777rrSiiYiIFEtFmYiIlFu5ubmujlDq7oVzLExeXp6rI4iI3DUqykRE5A/56aef6NevH2azmZdeeomcnJx8/Vu2bCEqKoqQkBAGDRrE8ePHHX3z58+nY8eOmM1mIiIi2L17N3DjF/JPPvmEbt26YTab6d+/P5cuXQJujHQtXbqUHj160KNHD0fbzdGviRMn8tZbbzFs2DDMZjNPP/00Fy5cAGDw4MEAREVFYTabWb9+PTExMXTq1MmRKS4ujiFDhhASEkLv3r3ZtGmTo2/ixIlMnjyZkSNHYjabGTBgAOfOnSvR7/Nmnvnz5/Poo4/y+uuvk5aWxvPPP0/79u0JDQ3l+eefJyEhwbHNkCFDmDNnDoMGDcJsNjN8+HCSk5Md/atXryY8PJx27doxb948unTpwq5duwCw2WzMnz+fbt260a5dO8aNG0dqamqR+RYuXEhYWBhhYWGsXLky33c/ZMgQvvrqK8e6q1at4qmnnnIsx8XFMWzYMNq2bUtERATr16939E2cOJG3336bESNG0KpVKxYvXswjjzySryj97rvviIqKuvMvV0SkjFJRJiIid8xisfDiiy8SFRXF3r176dmzJ99//72j/+jRo0yaNIkpU6YQExPDwIEDGT16NBaLhdOnT7N06VJWrlxJbGwsixYtonbt2gAsXryYdevWMX/+fH788UemTZuGl5eXY78bN25kxYoV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eaFNmzZ455130LNnzzJvSyUiqilYlBERUYVRKpWIjo7Gzp07oVarsXfvXvTo0UOa36ZNG8yfPx8ffPAB1Go1evbsiR07dgC4UzgsX74cQUFB6Ny5M7KysjB58mQAwIgRI9C7d2+MHDkS7dq1w+zZs0uM6vgg/fr1w9q1axEUFITff/8dS5culeaNHz8eM2fORGBgIPbu3VvieNatW4cjR46gQ4cOmDdvHpYsWSL1GD0JDzpny5cvh6enJ1577TUolUosXbpUKl7/avfu3ejevTvatWuHbdu2YcmSJQCAxo0bo2/fvggNDUVgYGCpoy++9957KCwsRKdOnTBz5kwMGDDAbP78+fOxadMmBAUFITk52axHsEePHvi///s/TJkyBe3atUO/fv1w5MiRco/7pZdewoULF3jrIhE9FWRCCGHtEERERJVl5syZ8PT0lAo8enw7duzAV199hS+//LLS9nHixAm88847OHDggNkzfURENRH/V46IiIiqFL1ejy+++AIDBw5kQUZETwX+Lx0RERFVGSkpKVCr1bh58yaGDx9u7ThERE8Eb18kIiIiIiKyIvaUERERERERWRGLsirCYDAgNTUVBoPB2lGIiIiIiOgJYlFWRWg0GoSEhJi94JSIiIiIiGo+FmVERERERERWxKKMiIiIiIjIiliUERERERERWRGLMiIiIiIiIitiUUZERERERGRFLMqIiIiIiIisiEUZERERERGRFbEoIyIiIiIisiIWZURERERERFbEooyIiIiIiMiKbKwdgIiIiIgqzy+n0/Dd0cuwUyowsHtTtHqunrUjEdFfsCgjIiIiqqF+v3QLi784ASHuTJ9O/hPr3w1BPVcH6wYjIjMsyoiIiIhqqGNn0qWCDAB0eiNOnstEWIdGD7mdNGzffwEGo0B4l+fQM+jh1ieiB+MzZRUkIyMDQ4cORUBAAAYMGGDtOERERETwcXcq0XYlPReLvziBPUdSYDCayt3G9YzbWPTFSSSn5uJKeh6itycg8eLNyohL9NRiT1kFcXR0RFRUFPLz8xEdHW3tOERERPQU+zOnCGu/TsQfl2/BxUmJvAId5DLA17MWvj16GQBwNDENqTfzMe5vbc3WNZoEPv/2dxw8dR11atmj5bN1YTIJs2Xiz2eibVP3J3Y89Hgup+Vi3TencT3jNgJbeuKtAX5wtLe1dqxKceDk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ZqEPV02lrp74hwL6jjAvFAAAANDMeVyUfa2qqkrl5eX12sLCwhotEMxj82vnURsAAACAxuNxUXby5ElNmzZNeXl5slgscrvdxnNlx44d81pA3DkB/Uap8tBOfXXxnCTJ994BanvPQyanAgAAAJo3j1df/P3vf6+BAwdq79698vf31759+zRu3DgtWrTIm/lwB7nrauV2OW9sWG1q272vLBaPuwgAAACA2+Dx/7jz8vI0bdo0BQYGyu12KyAgQC+//LKWLl3qzXy4g8p3r9H10vM3NlxOlW77DzmrL5sbCgAAAGjmPC7K2rRpo+vXbywC0b59e124cEEul0sVFRXeyoY77KuK76yq6bqu65cvmhMGAAAAaCE8LsoGDBigzZs3S5Li4uI0adIkPffccxo8ePBtf3lMTIzy8/MlSbNmzdL+/ftvenxmZqbS09MbtBcUFGjgwIG3naOxZGdnKy4uTr169dKOHTvMjvOD+YUPqrfdKihYdkd3k9IAAAAALYPHC3307dtXY8eOlST95je/0X333afq6mpduXKlUYIsWLCgUa5jpqioKI0cOVKzZ882O8ptCej/mGrPHVXNmc9l8wtSx8TJslhtZscCAAAAmjWPR8qysrK+Oclq1ejRo5WUlKSVK1d6dP6BAwf0zDPPKDExUYmJicrJyam3/7nnnjNGlyorK/XKK68oISFBiYmJmjdvXoPrHT9+XAkJCdq7d6/RlpGRoTFjxiguLq7eqNvatWuVkJCghIQE/epXv1JpaamkhiNv397++OOPlZCQoNGjRys+Pl65ubmSpJKSEk2ePFlPPvmkEhIS9Oabbxrn9+3bV926dfPofjRFV/ZuUPWxT+WqrdJXpQUq/e9ssyMBAAAAzd4tR8r27NkjSXI6nfrss8/kdruNfQUFBfLz87vll1RUVCg1NVWZmZnq37+/nE6nqqqqvvf4tLQ0+fr66m9/+5usVqvKysoaZEpLS1NGRobuvfdeFRQUqKKiQhEREZo6darWrVunxYsX67333lN+fr4WL16sDz/8UMHBwVqyZInmz5+vJUuW3DTzH//4R82dO1eRkZFyOp2qqamRJE2fPl0pKSmKiopSXV2dJkyYoAcffFBDhgy55X342pUrVxqMMBYVFXl8vrdUHdldb/ta//MVKgAADKVJREFUwXF9VVGi1kHBJiUCAAAAmr9bFmWz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\n",
      "text/plain": [
       "<Figure size 864x972 with 9 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.catplot(x=\"elapsed\", y=\"target\", row=\"description\", kind=\"swarm\", \n",
    "            orient=\"h\", height=1.5, aspect=8, \n",
    "            data=detail_report)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Summary report"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='elapsed_total', ylabel='description'>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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MTt06KBx48bJ29v7Pny7AAAAAICCiGDiPnr77be1cuVKrV69WsWLF5ckjR49Wj4+PnrnnXeUkZGhYcOGad26dercubMk6fjx41qyZIns7e0VHh6uX375RRs3bpSHh4deffVVDR06VJ999pkeeughBQQEaO/evWrUqFGWcY8ePaqFCxdqw4YNKlOmjMaNG5erevfv36+tW7dqxYoVcnR01K5duzRq1CitXr1aknTgwAFFRETo0UcflSQ5Oztr3759ql+/vvbv3y87O7tsoURCQoISEhKybIuJibnr7xIAAAAAUDgQTBhsx44dOnz4sJYuXSpJunHjhtzd3W3t7du3l739/z9N3t7e8vDwkCQ9+eSTqlChgkqUKCFJqlatms6cOZMtmNi3b5+aN2+uMmXKSJK6dOmirVu35qq2o0ePKjg4WJJktVqzhAre3t62UEKSQkNDtXLlStWvX18rVqxQSEhItj6XL1+u+fPn5zje3DB/eXp63rGu3MhIT5OdvUOe9IXcS02zyNHBbHQZAAAAAAoQggmDWa1WLViwQF5eXjm2Ozs7Z3nv5ORke202m7O9z2mtB6vVesvxzWZzlvaUlJQsxwUFBWnw4ME5Hps56yNTmzZtNGvWLP3222+KjIzU5MmTsx3To0cPBQQEZNkWExOjkJAQHfkwTLElit2y1rtRd/jiPOkHd4dQAgAAAMDdYvHL+6x48eJKSkqyvff19dWiRYtsgcKVK1cUFRWVp2M2aNBAu3bt0uXLlyVJa9eutbV5eXkpKipK8fHxslqt2rx5c5baIiIibLdaWCwWHTly5JbjODg4KCgoSP3791f79u310EMPZdvH1dVVnp6eWf4yZ4AAAAAAAIoegon7rHfv3nrppZfk7++vhIQEjRo1SnZ2dvL391f79u318ssvKzY2Nk/HrFatmvr166du3brpxRdfzHKriLu7u3r16qXAwED17NlTbm5utjYfHx+9/vrr6t+/vzp06CA/Pz9t3779tmMFBwcrNjZW3bp1y9PPAAAAAAAonEzW283zR6EUHR2toKAgRUZG5nnfERER2rx5sxYtWnRX9bRs2VJzO/vIjVs5AAAAAKBQyfzNt3379hzXFWSNCeSZPn366OzZs1q4cKHRpQAAAAAACohcBxNRUVGaM2eOfv/9dyUnJ2dp+/bbb/O6LuQjT0/PfJktsWTJkjzv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BzVt2jQ/6wMAAAAAAIVYroMJFxcXXbp0SSdOnFCVKlVUvHhxpaamKj09PT/rAwAAAAAAhViug4nu3burU6dOSktL06hRoyRJBw4cUOXKlfOtOAAAAAAAULjd1eNCW7duLbPZrEcffVSS5O7urkmTJuVbcQAAAAAAoHDL9eKXkuTp6am4uDht2bJF0s1gwsvLK18KAwAAAAAAhV+uZ0wcO3ZM/fv3l6Ojo2JjY9W2bVv973//0/r16zVnzpx8LBEAAAAAgPsnNc0iRwez0WUUGbkOJsaNG6dBgwapY8eO8vHxkST5+PhozJgx+VYcipbBUyPk5FzK6DIAAAAAFHErp4cYXUKRkutbOf744w/5+/tLkkwmkyTJ2dlZKSkp+VMZAAAAAAAo9HIdTFSoUEFHjhzJsu3w4cO2hTABAAAAAADuVq5v5Rg8eLBeffVVde3aVampqfrwww+1atUqnsoBAAAAAADuWa5nTLRo0UKLFy/WlStXVL9+fZ0/f17z589XkyZN8rM+AAAAAABQiN12xsTcuXOzbXv44Yf18MMPS5K2b9+u7du3a/DgwflTHQAAAAAAKNRuG0zExMTYXqekpOirr75SjRo1VKFCBZ0/f16//PKLnnvuuXwvEgAAAAAAFE63DSamTJliez1kyBC9++67ev75523bvvrqK23bti3/qgMAAAAAAIVarteY2L17t1q1apVlW8uWLbVr1648LwoAAAAAABQNuQ4mKlasqBUrVmTZtnLlSh4XCgAAAAAA7lmug4lJkyZp2bJlatasmYKDg9WsWTMtXbqUx4XeB3379tXZs2dvu8+8efOUmpp6nyoCAAAAACBv3HaNib+rXr26vvzyS/3888+Ki4uTm5ubateuLQcHh/ysD5I++uijO+4zf/589e7dW46OjvehouwsFovMZrMhYwMAAAAACq5cz5iQJAcHB9WrV09t27aVj48PocQ9+PnnnxUaGqrAwEAFBgbq22+/lSS9//77GjhwoCTp+vXr8vPzs63f4evrq+PHj0u6GUC0adNG/v7+6tixoxISEjR+/HhJUteuXeXv76+EhIRs465YsUKtW7fWiy++qDlz5qhBgwaSpMjISAUGBtr2++f79evXKzg4WIGBgXrppZf0559/SpLCw8PVp08fvfnmmwoMDNSvv/4qPz+/LGN26NBBBw4cyLItISFB0dHR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1d69e+9Y8zPPPKOpU6dq8eLFOnnypFxcXJScnKx9+/Zp0qRJ8vf3V3BwsOLi4my///JTvs+YKFWqlObNm6epU6cqOTlZdnZ2GjFihBo1aqQ2bdqoXbt2Kl++vHx8fG77yM/p06dr5MiRWrZsmZ566inVqlXrrmsZOXKkBgwYIHd3d9WvX1+lSpW64zEdOnTQyJEjtW3bNvXq1UsdO3aUi4uLmjZtqhs3bmT5j+jvQkNDNXjwYHXs2FEeHh5ZFtn8v//7P40cOVLt2rVThQoV5O3tbftxf7u2f6pUqZJmzJih0aNH68aNG0pLS5O3t7eefvpptWzZUgcPHpS/v7/c3d1Vq1YtxcfH37G2Vq1aKSIiQv7+/rbFLzOVLl1a06dP17Bhw5Senq7SpUtrxowZd/wOAQAAAKCwutVdAvfiscce04kTJ3TkyBG5u7vbtt9qdvrtZrWbzWZlZGTY3v99lvyoUaN07Ngx/fjjjxo8eLB69eqltm3bymQyae3atXJwuL+31pusefktFhHp6enq0KGDpk6dek/32aSlpSkjI0NOTk5KSkpSt27dNHLkSDVq1Oi2bXcrKSlJLi4uysjI0OjRo1W2bFkNGTLkrvvJb9HR0WrZsqXmdvaRG7dyAAAAALiN33//XU8++WSWbUauMXH16lW1a9dO8+fPV506dWy3cgQEBNieyvH3NSZGjhwpZ2dnjRkzRiaTSVeuXFHp0qVta0D06NFDffr00f/93/+pbdu22Z7K8ff3J06cUO/evRUeHi43Nze99957OnXqlGbPnq1NmzZp9erV+uSTT5ScnKyuXbuqadOmGjFihP78809VrlxZkrRw4UKdP39eEydOVI8ePVS/fn393//9nyTpwoULsre3z7Iu498/y6388xxl/ubbvn277S6Gv7svjwstTLZv365JkyapVatW97z4R0JCgvr27SuLxaKUlBT5+fnZgofbtd2tESNG6Ny5c7px44aeeuop9e3b9576AQAAAADk7FZ3CdzKyJEjNXnyZPn5+clsNqt+/fpZnnTh4eGhZcuWqU+fPrp+/boaNGhwy77+85//aOjQoerdu7ckycvLSxMmTJAkPffcc9q6davatWunihUr6qmnnrId9+677+rMmTMym81ydXW1PTVk5syZmjJlitq3by/p5hqH77zzjtzc3LR48WJ98sknunLlisLC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\n",
      "text/plain": [
       "<Figure size 1152x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "plt.figure(figsize=(16, 6))\n",
    "\n",
    "sns.barplot(x=\"elapsed_total\", y=\"description\", hue=\"target\",data=summary_report)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
